[K2] Drop excess method from ConstValueProvider

This commit is contained in:
Ivan Kylchik
2023-04-03 15:19:39 +02:00
committed by Space Team
parent 8499891756
commit 0354cf3ed7
3 changed files with 4 additions and 52 deletions
@@ -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,
@@ -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()
@@ -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,