[FIR] DeprecationsProvider: make evaluation of deprecations on demand

This commit is contained in:
Arseniy Terekhov
2022-08-10 18:06:59 +03:00
committed by teamcity
parent 98ebad2d75
commit 25fc948d95
89 changed files with 517 additions and 326 deletions
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.declarations.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 {
@@ -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<FirCallableSymbol<*>>,
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
@@ -74,11 +74,11 @@ object FirDeprecationChecker : FirBasicExpressionChecker() {
context: CheckerContext
): DeprecationInfo? {
val deprecationInfos = listOfNotNull(
symbol.getDeprecation(callSite),
symbol.getDeprecation(context.languageVersionSettings.apiVersion, callSite),
symbol.safeAs<FirConstructorSymbol>()
?.resolvedReturnTypeRef
?.toRegularClassSymbol(context.session)
?.getDeprecation(callSite)
?.getDeprecation(context.languageVersionSettings.apiVersion, callSite)
)
return deprecationInfos.maxOrNull()
}
@@ -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)
@@ -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 {
@@ -185,7 +185,7 @@ abstract class FirJavaFacade(
}
}
firJavaClass.replaceSuperTypeRefs(enhancedSuperTypes)
firJavaClass.replaceDeprecation(firJavaClass.getDeprecationInfos(session.languageVersionSettings.apiVersion))
firJavaClass.replaceDeprecationsProvider(firJavaClass.getDeprecationsProvider())
return firJavaClass
}
@@ -50,7 +50,7 @@ class FirJavaClass @FirImplementationDetail internal constructor(
) : FirRegularClass() {
override val hasLazyNestedClassifiers: Boolean get() = true
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
override var deprecation: DeprecationsPerUseSite? = null
override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
@@ -70,8 +70,8 @@ class FirJavaClass @FirImplementationDetail internal constructor(
resolvePhase = newResolvePhase
}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {
deprecation = newDeprecation
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecationsProvider = newDeprecationsProvider
}
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {}
@@ -43,7 +43,7 @@ class FirJavaConstructor @FirImplementationDetail constructor(
override val dispatchReceiverType: ConeSimpleKotlinType?,
) : FirConstructor() {
override val receiverTypeRef: FirTypeRef? get() = null
override var deprecation: DeprecationsPerUseSite? = null
override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
init {
symbol.bind(this)
@@ -134,8 +134,8 @@ class FirJavaConstructor @FirImplementationDetail constructor(
}
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {
deprecation = newDeprecation
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecationsProvider = newDeprecationsProvider
}
override fun replaceContextReceivers(newContextReceivers: List<FirContextReceiver>) {
@@ -61,8 +61,8 @@ class FirJavaField @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val deprecation: DeprecationsPerUseSite by lazy {
annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true)
override val deprecationsProvider: DeprecationsProvider by lazy {
annotations.getDeprecationsProviderFromAnnotations(true)
}
override val contextReceivers: List<FirContextReceiver>
@@ -145,8 +145,7 @@ class FirJavaField @FirImplementationDetail constructor(
}
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {}
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {}
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField {
return this
@@ -85,7 +85,7 @@ class FirJavaMethod @FirImplementationDetail constructor(
get() = emptyList()
//not used actually, because get 'enhanced' into regular FirSimpleFunction
override var deprecation: DeprecationsPerUseSite? = null
override var deprecationsProvider: DeprecationsProvider = UnresolvedDeprecationProvider
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
@@ -159,8 +159,8 @@ class FirJavaMethod @FirImplementationDetail constructor(
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {
}
override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?) {
deprecation = newDeprecation
override fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider) {
deprecationsProvider = newDeprecationsProvider
}
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
@@ -207,7 +207,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
lateinit var annotationBuilder: () -> List<FirAnnotation>
@Deprecated("Modification of 'deprecation' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
override var deprecation: DeprecationsPerUseSite?
override var deprecationsProvider: DeprecationsProvider
get() = throw IllegalStateException()
set(_) {
throw IllegalStateException()
@@ -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) {
}
@@ -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? {
@@ -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
@@ -88,7 +88,7 @@ class JavaClassUseSiteMemberScope(
chooseModalityForAccessor(property, delegateGetter)
}
)
deprecation = getDeprecationsFromAccessors(delegateGetter, delegateSetter, session.languageVersionSettings.apiVersion)
deprecationsProvider = getDeprecationsProviderFromAccessors(delegateGetter, delegateSetter)
}.symbol
}
}
@@ -24,65 +24,121 @@ import org.jetbrains.kotlin.name.StandardClassIds.Annotations.ParameterNames.dep
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.ParameterNames.deprecatedSinceKotlinWarningSince
import org.jetbrains.kotlin.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<AnnotationUseSiteTarget?, List<DeprecationAnnotationInfo>>) {
fun toDeprecationsProvider(): DeprecationsProvider {
if (storage.isEmpty()) {
return EmptyDeprecationsProvider
}
@Suppress("UNCHECKED_CAST")
val specificCallSite = storage.filterKeys { it != null } as Map<AnnotationUseSiteTarget, List<DeprecationAnnotationInfo>>
return DeprecationsProviderImpl(
storage[null],
specificCallSite.takeIf { it.isNotEmpty() }
)
}
}
class DeprecationAnnotationInfoPerUseSiteStorageBuilder {
private val storage = mutableMapOf<AnnotationUseSiteTarget?, MutableList<DeprecationAnnotationInfo>>()
fun add(useSite: AnnotationUseSiteTarget?, info: DeprecationAnnotationInfo) {
storage.getOrPut(useSite) { mutableListOf() }.add(info)
}
fun add(useSite: AnnotationUseSiteTarget?, infos: Iterable<DeprecationAnnotationInfo>) {
storage.getOrPut(useSite) { mutableListOf() }.addAll(infos)
}
fun add(other: DeprecationAnnotationInfoPerUseSiteStorage) {
other.storage.forEach { (useSite, info) ->
add(useSite, info)
}
}
fun build(): DeprecationAnnotationInfoPerUseSiteStorage {
return DeprecationAnnotationInfoPerUseSiteStorage(storage)
}
}
fun buildDeprecationAnnotationInfoPerUseSiteStorage(builder: DeprecationAnnotationInfoPerUseSiteStorageBuilder.() -> Unit)
: DeprecationAnnotationInfoPerUseSiteStorage {
return DeprecationAnnotationInfoPerUseSiteStorageBuilder().apply(builder).build()
}
fun FirBasedSymbol<*>.getDeprecation(apiVersion: ApiVersion, callSite: FirElement?): DeprecationInfo? {
return when (this) {
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<AnnotationUseSiteTarget?, DeprecationInfo>()
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<AnnotationUseSiteTarget, DeprecationInfo> {
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<FirAnnotation>.getDeprecationInfosFromAnnotations(currentVersion: ApiVersion, fromJava: Boolean): DeprecationsPerUseSite {
val deprecationByUseSite = extractDeprecationInfoPerUseSite(currentVersion, fromJava).toMap()
return DeprecationsPerUseSite.fromMap(deprecationByUseSite)
fun List<FirAnnotation>.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<FirAnnotation>.extractDeprecationInfoPerUseSite(
currentVersion: ApiVersion,
private fun List<FirAnnotation>.extractDeprecationAnnotationInfoPerUseSite(
fromJava: Boolean
): List<Pair<AnnotationUseSiteTarget?, DeprecationInfo>> {
): DeprecationAnnotationInfoPerUseSiteStorage {
@Suppress("RemoveExplicitTypeArguments")
val annotations = buildList<Pair<FirAnnotation, Boolean>> {
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)
)
}
}
}
@@ -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 {
@@ -122,7 +122,7 @@ object FirFakeOverrideGenerator {
session, baseFunction, newParameterTypes, newTypeParameters,
newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution, newSymbol
).filterIsInstance<FirTypeParameter>()
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
}
@@ -341,6 +341,7 @@ class FirCallResolver(
qualifiedAccess.explicitReceiver,
referencedSymbol,
nonFatalDiagnosticFromExpression,
session.languageVersionSettings.apiVersion
),
annotations = qualifiedAccess.annotations
)
@@ -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<FirTypeProjection>,
nonFatalDiagnosticsFromExpression: List<ConeDiagnostic>?,
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<ConeDiagnostic>?
extraNotFatalDiagnostics: List<ConeDiagnostic>?,
apiVersion: ApiVersion
): List<ConeDiagnostic> {
val prevDiagnostics = (explicitReceiver as? FirResolvedQualifier)?.nonFatalDiagnostics ?: emptyList()
var result: MutableList<ConeDiagnostic>? = null
val deprecation = symbol.fir.deprecation?.forUseSite()
val deprecation = symbol.getDeprecation(apiVersion)?.forUseSite()
if (deprecation != null) {
result = mutableListOf()
result.addAll(prevDiagnostics)
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.buildConstructedClassTypePa
import org.jetbrains.kotlin.fir.declarations.builder.buildConstructorCopy
import org.jetbrains.kotlin.fir.declarations.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
}
@@ -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)
}
@@ -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
@@ -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())
}
}
}
@@ -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())
}
}
}
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -29,7 +29,7 @@ abstract class FirAnonymousObject : FirClass(), FirControlFlowGraphOwner {
abstract override val attributes: FirDeclarationAttributes
abstract override val typeParameters: List<FirTypeParameterRef>
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<FirTypeRef>
abstract override val declarations: List<FirDeclaration>
@@ -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<FirTypeRef>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<out FirCallableDeclaration>
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<FirContextReceiver>)
@@ -29,7 +29,7 @@ sealed class FirClass : FirClassLikeDeclaration(), FirStatement, FirTypeParamete
abstract override val attributes: FirDeclarationAttributes
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val deprecationsProvider: DeprecationsProvider
abstract override val symbol: FirClassSymbol<out FirClass>
abstract val classKind: ClassKind
abstract val superTypeRefs: List<FirTypeRef>
@@ -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<FirTypeRef>)
@@ -28,7 +28,7 @@ sealed class FirClassLikeDeclaration : FirMemberDeclaration(), FirStatement {
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val symbol: FirClassLikeSymbol<out FirClassLikeDeclaration>
abstract val deprecation: DeprecationsPerUseSite?
abstract val deprecationsProvider: DeprecationsProvider
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitClassLikeDeclaration(this, data)
@@ -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 <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirClassLikeDeclaration
@@ -33,7 +33,7 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner {
abstract override val status: FirDeclarationStatus
abstract override val 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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -30,7 +30,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner {
abstract override val attributes: FirDeclarationAttributes
abstract override val typeParameters: List<FirTypeParameterRef>
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<FirDeclaration>
abstract override val annotations: List<FirAnnotation>
@@ -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?)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirTypeParameter>
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)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver>)
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver> = 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)
@@ -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<FirTypeParameterRef> = 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<FirTypeRef> = mutableListOf()
override val declarations: MutableList<FirDeclaration> = mutableListOf()
@@ -62,7 +63,7 @@ class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnn
attributes,
typeParameters,
status,
deprecation,
deprecationsProvider,
classKind,
superTypeRefs,
declarations,
@@ -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<FirContextReceiver> = mutableListOf()
@@ -75,7 +76,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder {
attributes,
returnTypeRef,
receiverTypeRef,
deprecation,
deprecationsProvider,
containerSource,
dispatchReceiverType,
contextReceivers,
@@ -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<FirTypeParameterRef>
abstract var status: FirDeclarationStatus
abstract var deprecation: DeprecationsPerUseSite?
abstract var deprecationsProvider: DeprecationsProvider
abstract var classKind: ClassKind
abstract val superTypeRefs: MutableList<FirTypeRef>
abstract val declarations: MutableList<FirDeclaration>
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.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<FirContextReceiver> = 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)
@@ -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<FirContextReceiver> = mutableListOf()
@@ -75,7 +76,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
attributes,
returnTypeRef,
receiverTypeRef,
deprecation,
deprecationsProvider,
containerSource,
dispatchReceiverType,
contextReceivers,
@@ -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<FirTypeParameterRef> = 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<FirContextReceiver> = mutableListOf()
@@ -67,7 +68,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
typeParameters,
status,
returnTypeRef,
deprecation,
deprecationsProvider,
containerSource,
dispatchReceiverType,
contextReceivers,
@@ -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<FirContextReceiver> = mutableListOf()
@@ -63,7 +64,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
resolvePhase,
origin,
attributes,
deprecation,
deprecationsProvider,
containerSource,
dispatchReceiverType,
contextReceivers,
@@ -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<FirContextReceiver> = mutableListOf()
@@ -64,7 +65,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
resolvePhase,
origin,
attributes,
deprecation,
deprecationsProvider,
containerSource,
dispatchReceiverType,
contextReceivers,
@@ -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<FirTypeParameterRef> = 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<FirContextReceiver> = mutableListOf()
@@ -72,7 +73,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
typeParameters,
status,
returnTypeRef,
deprecation,
deprecationsProvider,
containerSource,
dispatchReceiverType,
contextReceivers,
@@ -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<FirContextReceiver>
@@ -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<FirContextReceiver> = mutableListOf()
@@ -72,7 +73,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
status,
returnTypeRef,
receiverTypeRef,
deprecation,
deprecationsProvider,
containerSource,
dispatchReceiverType,
contextReceivers,
@@ -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<FirContextReceiver> = 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)
@@ -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<FirContextReceiver> = 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)
@@ -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<FirTypeParameterRef> = 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<FirDeclaration> = mutableListOf()
override val annotations: MutableList<FirAnnotation> = 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)
@@ -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<FirContextReceiver> = 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)
@@ -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<FirTypeParameter> = 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
@@ -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<FirContextReceiver> = 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)
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirTypeParameterRef>,
override var status: FirDeclarationStatus,
override var deprecation: DeprecationsPerUseSite?,
override var deprecationsProvider: DeprecationsProvider,
override val classKind: ClassKind,
override val superTypeRefs: MutableList<FirTypeRef>,
override val declarations: MutableList<FirDeclaration>,
@@ -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<FirTypeRef>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirTypeParameterRef>,
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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirTypeParameterRef>,
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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirTypeParameterRef>,
override var status: FirDeclarationStatus,
override var deprecation: DeprecationsPerUseSite?,
override var deprecationsProvider: DeprecationsProvider,
override val classKind: ClassKind,
override val declarations: MutableList<FirDeclaration>,
override val annotations: MutableList<FirAnnotation>,
@@ -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?) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -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<FirTypeParameter>,
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) {
@@ -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<FirContextReceiver>,
@@ -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<FirContextReceiver>) {
@@ -0,0 +1,97 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
import org.jetbrains.kotlin.resolve.deprecation.SimpleDeprecationInfo
import org.jetbrains.kotlin.utils.addToStdlib.runUnless
abstract class DeprecationsProvider {
abstract fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite?
}
class DeprecationsProviderImpl(
private val all: List<DeprecationAnnotationInfo>?,
private val bySpecificSite: Map<AnnotationUseSiteTarget, List<DeprecationAnnotationInfo>>?
) : DeprecationsProvider() {
override fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite {
@Suppress("UNCHECKED_CAST")
return DeprecationsPerUseSite(
all?.computeDeprecationInfoOrNull(version),
bySpecificSite?.mapValues { (_, info) -> info.computeDeprecationInfoOrNull(version) }?.filterValues { it != null }
as Map<AnnotationUseSiteTarget, DeprecationInfo>?
)
}
private fun List<DeprecationAnnotationInfo>.computeDeprecationInfoOrNull(version: ApiVersion): DeprecationInfo? {
return firstNotNullOfOrNull { it.computeDeprecationInfo(version) }
}
}
object EmptyDeprecationsProvider : DeprecationsProvider() {
override fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite {
return EmptyDeprecationsPerUseSite
}
}
object UnresolvedDeprecationProvider : DeprecationsProvider() {
override fun getDeprecationsInfo(version: ApiVersion): DeprecationsPerUseSite? {
return null
}
}
sealed interface DeprecationAnnotationInfo {
fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo?
}
class SinceKotlinInfo(val sinceVersion: ApiVersion) : DeprecationAnnotationInfo {
override fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo? {
return runUnless(sinceVersion <= apiVersion) {
SimpleDeprecationInfo(
deprecationLevel = DeprecationLevelValue.HIDDEN,
propagatesToOverrides = true,
message = null
)
}
}
}
class DeprecatedInfo(
val level: DeprecationLevelValue,
val propagatesToOverride: Boolean,
val message: String?
) : DeprecationAnnotationInfo {
override fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo {
return SimpleDeprecationInfo(
level,
propagatesToOverride,
message
)
}
}
class DeprecatedSinceKotlinInfo(
val warningVersion: ApiVersion?,
val errorVersion: ApiVersion?,
val hiddenVersion: ApiVersion?,
val message: String?,
val propagatesToOverride: Boolean
) : DeprecationAnnotationInfo {
override fun computeDeprecationInfo(apiVersion: ApiVersion): DeprecationInfo? {
fun ApiVersion.takeLevelIfDeprecated(level: DeprecationLevelValue) = level.takeIf { this <= apiVersion }
val appliedLevel = hiddenVersion?.takeLevelIfDeprecated(DeprecationLevelValue.HIDDEN)
?: errorVersion?.takeLevelIfDeprecated(DeprecationLevelValue.ERROR)
?: warningVersion?.takeLevelIfDeprecated(DeprecationLevelValue.WARNING)
return appliedLevel?.let {
SimpleDeprecationInfo(it, propagatesToOverride, message)
}
}
}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.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(),
@@ -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,
@@ -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")
}
@@ -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<FirValueParameter>
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")
}
@@ -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
)
}
@@ -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<D : FirCallableDeclaration> : FirBasedSymbol<D>
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) {
@@ -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<D : FirClassLikeDeclaration>(
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
@@ -423,6 +423,13 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
) {
default(it, "${declarationAttributesType.type}()")
}
configureFieldInAllLeafBuilders(
field = "deprecationsProvider"
) {
default(it, "UnresolvedDeprecationProvider")
useTypes(unresolvedDeprecationsProviderType)
}
}
private inline fun findImplementationsWithElementInParents(
@@ -88,7 +88,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(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<FirTreeBuilder>(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 {
@@ -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")