[K2] Drop excess method from ConstValueProvider
This commit is contained in:
-12
@@ -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,
|
||||
|
||||
-13
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user