diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtensionBase.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtensionBase.kt index 03c3e3cdd56..bf5fb3c561c 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtensionBase.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtensionBase.kt @@ -132,18 +132,6 @@ abstract class FirSerializerExtensionBase( for (annotation in this) { val annotationWithConstants = when { container == null -> null - container is FirPropertyAccessor -> - constValueProvider?.getNewFirAnnotationWithConstantValues( - container.propertySymbol.fir, - annotation, - container, - isGetter = container.isGetter - ) - container is FirValueParameter -> - constValueProvider?.getNewFirAnnotationWithConstantValues( - container, - annotation, - ) extension == protocol.propertyExtensionReceiverAnnotation || extension == protocol.functionExtensionReceiverAnnotation -> constValueProvider?.getNewFirAnnotationWithConstantValues( container, diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/ConstValueProvider.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/ConstValueProvider.kt index fc3d0770a70..0e672695501 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/ConstValueProvider.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/ConstValueProvider.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirReceiverParameter -import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.serialization.FirAnnotationSerializer @@ -26,24 +25,12 @@ abstract class ConstValueProvider { firAnnotation: FirAnnotation, ): FirAnnotation - abstract fun getNewFirAnnotationWithConstantValues( - firProperty: FirProperty, - firAnnotation: FirAnnotation, - firPropertyAccessor: FirPropertyAccessor, - isGetter: Boolean, - ): FirAnnotation - abstract fun getNewFirAnnotationWithConstantValues( firExtensionReceiverContainer: FirAnnotationContainer, firAnnotation: FirAnnotation, receiverParameter: FirReceiverParameter, ): FirAnnotation - abstract fun getNewFirAnnotationWithConstantValues( - valueParameter: FirValueParameter, - firAnnotation: FirAnnotation, - ): FirAnnotation - fun FirExpression?.toProtoBuf(annotationSerializer: FirAnnotationSerializer): ProtoBuf.Annotation.Argument.Value? { val constantValue = this?.toConstantValue(session) ?: return null return annotationSerializer.valueProto(constantValue).build() diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConstValueProviderImpl.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConstValueProviderImpl.kt index 3bc8b74fc26..4d6aa7045a7 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConstValueProviderImpl.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConstValueProviderImpl.kt @@ -49,8 +49,12 @@ class ConstValueProviderImpl( is FirScript -> components.declarationStorage.getCachedIrScript(firAnnotationContainer) is FirConstructor -> components.declarationStorage.getCachedIrConstructor(firAnnotationContainer) + is FirPropertyAccessor -> components.declarationStorage.getCachedIrProperty(firAnnotationContainer.propertySymbol.fir) + ?.let { if (firAnnotationContainer.isGetter) it.getter else it.setter } is FirFunction -> components.declarationStorage.getCachedIrFunction(firAnnotationContainer) is FirProperty -> components.declarationStorage.getCachedIrProperty(firAnnotationContainer) + is FirValueParameter -> components.declarationStorage.getCachedIrFunction(firAnnotationContainer.containingFunctionSymbol.fir) + ?.valueParameters?.single { it.name == firAnnotationContainer.name } else -> error("Cannot extract IR declaration for ${firAnnotationContainer.render()}") } ?: return firAnnotation @@ -71,20 +75,6 @@ class ConstValueProviderImpl( return buildNewFirAnnotationByCorrespondingIrAnnotation(correctIrDeclaration, correctFirContainer, firAnnotation) } - override fun getNewFirAnnotationWithConstantValues( - firProperty: FirProperty, - firAnnotation: FirAnnotation, - firPropertyAccessor: FirPropertyAccessor, - isGetter: Boolean, - ): FirAnnotation { - if (firAnnotation is FirErrorAnnotationCall) return firAnnotation - - val irProperty = components.declarationStorage.getCachedIrProperty(firProperty) ?: return firAnnotation - val irAccessor = (if (isGetter) irProperty.getter else irProperty.setter) - ?: error("Cannot extract IR property accessor for ${firProperty.render()}") - return buildNewFirAnnotationByCorrespondingIrAnnotation(irAccessor, firPropertyAccessor, firAnnotation) - } - override fun getNewFirAnnotationWithConstantValues( firExtensionReceiverContainer: FirAnnotationContainer, firAnnotation: FirAnnotation, @@ -101,19 +91,6 @@ class ConstValueProviderImpl( return buildNewFirAnnotationByCorrespondingIrAnnotation(extensionReceiver, receiverParameter, firAnnotation) } - override fun getNewFirAnnotationWithConstantValues( - valueParameter: FirValueParameter, - firAnnotation: FirAnnotation, - ): FirAnnotation { - if (firAnnotation is FirErrorAnnotationCall) return firAnnotation - - val firFunction = valueParameter.containingFunctionSymbol.fir - val irFunction = components.declarationStorage.getCachedIrFunction(firFunction) ?: return firAnnotation - val irValueParameter = irFunction.valueParameters.single { it.name == valueParameter.name } - - return buildNewFirAnnotationByCorrespondingIrAnnotation(irValueParameter, valueParameter, firAnnotation) - } - private fun buildNewFirAnnotationByCorrespondingIrAnnotation( irDeclaration: IrDeclarationBase, firAnnotationContainer: FirAnnotationContainer,