[K2] Drop excess method from ConstValueProvider
This commit is contained in:
-12
@@ -132,18 +132,6 @@ abstract class FirSerializerExtensionBase(
|
|||||||
for (annotation in this) {
|
for (annotation in this) {
|
||||||
val annotationWithConstants = when {
|
val annotationWithConstants = when {
|
||||||
container == null -> null
|
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 ->
|
extension == protocol.propertyExtensionReceiverAnnotation || extension == protocol.functionExtensionReceiverAnnotation ->
|
||||||
constValueProvider?.getNewFirAnnotationWithConstantValues(
|
constValueProvider?.getNewFirAnnotationWithConstantValues(
|
||||||
container,
|
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.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirReceiverParameter
|
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.FirAnnotation
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.serialization.FirAnnotationSerializer
|
import org.jetbrains.kotlin.fir.serialization.FirAnnotationSerializer
|
||||||
@@ -26,24 +25,12 @@ abstract class ConstValueProvider {
|
|||||||
firAnnotation: FirAnnotation,
|
firAnnotation: FirAnnotation,
|
||||||
): FirAnnotation
|
): FirAnnotation
|
||||||
|
|
||||||
abstract fun getNewFirAnnotationWithConstantValues(
|
|
||||||
firProperty: FirProperty,
|
|
||||||
firAnnotation: FirAnnotation,
|
|
||||||
firPropertyAccessor: FirPropertyAccessor,
|
|
||||||
isGetter: Boolean,
|
|
||||||
): FirAnnotation
|
|
||||||
|
|
||||||
abstract fun getNewFirAnnotationWithConstantValues(
|
abstract fun getNewFirAnnotationWithConstantValues(
|
||||||
firExtensionReceiverContainer: FirAnnotationContainer,
|
firExtensionReceiverContainer: FirAnnotationContainer,
|
||||||
firAnnotation: FirAnnotation,
|
firAnnotation: FirAnnotation,
|
||||||
receiverParameter: FirReceiverParameter,
|
receiverParameter: FirReceiverParameter,
|
||||||
): FirAnnotation
|
): FirAnnotation
|
||||||
|
|
||||||
abstract fun getNewFirAnnotationWithConstantValues(
|
|
||||||
valueParameter: FirValueParameter,
|
|
||||||
firAnnotation: FirAnnotation,
|
|
||||||
): FirAnnotation
|
|
||||||
|
|
||||||
fun FirExpression?.toProtoBuf(annotationSerializer: FirAnnotationSerializer): ProtoBuf.Annotation.Argument.Value? {
|
fun FirExpression?.toProtoBuf(annotationSerializer: FirAnnotationSerializer): ProtoBuf.Annotation.Argument.Value? {
|
||||||
val constantValue = this?.toConstantValue(session) ?: return null
|
val constantValue = this?.toConstantValue(session) ?: return null
|
||||||
return annotationSerializer.valueProto(constantValue).build()
|
return annotationSerializer.valueProto(constantValue).build()
|
||||||
|
|||||||
@@ -49,8 +49,12 @@ class ConstValueProviderImpl(
|
|||||||
|
|
||||||
is FirScript -> components.declarationStorage.getCachedIrScript(firAnnotationContainer)
|
is FirScript -> components.declarationStorage.getCachedIrScript(firAnnotationContainer)
|
||||||
is FirConstructor -> components.declarationStorage.getCachedIrConstructor(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 FirFunction -> components.declarationStorage.getCachedIrFunction(firAnnotationContainer)
|
||||||
is FirProperty -> components.declarationStorage.getCachedIrProperty(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()}")
|
else -> error("Cannot extract IR declaration for ${firAnnotationContainer.render()}")
|
||||||
} ?: return firAnnotation
|
} ?: return firAnnotation
|
||||||
|
|
||||||
@@ -71,20 +75,6 @@ class ConstValueProviderImpl(
|
|||||||
return buildNewFirAnnotationByCorrespondingIrAnnotation(correctIrDeclaration, correctFirContainer, firAnnotation)
|
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(
|
override fun getNewFirAnnotationWithConstantValues(
|
||||||
firExtensionReceiverContainer: FirAnnotationContainer,
|
firExtensionReceiverContainer: FirAnnotationContainer,
|
||||||
firAnnotation: FirAnnotation,
|
firAnnotation: FirAnnotation,
|
||||||
@@ -101,19 +91,6 @@ class ConstValueProviderImpl(
|
|||||||
return buildNewFirAnnotationByCorrespondingIrAnnotation(extensionReceiver, receiverParameter, firAnnotation)
|
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(
|
private fun buildNewFirAnnotationByCorrespondingIrAnnotation(
|
||||||
irDeclaration: IrDeclarationBase,
|
irDeclaration: IrDeclarationBase,
|
||||||
firAnnotationContainer: FirAnnotationContainer,
|
firAnnotationContainer: FirAnnotationContainer,
|
||||||
|
|||||||
Reference in New Issue
Block a user