From b72488b4c22eef474008527c7127b84570fb3ac9 Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Mon, 9 Aug 2021 15:55:12 +0300 Subject: [PATCH] [FIR] Add replaceGetter & replaceSetter --- .../kotlin/fir/java/declarations/FirJavaField.kt | 4 ++++ .../kotlin/fir/java/declarations/FirJavaValueParameter.kt | 6 ++++++ .../org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt | 4 ++++ .../jetbrains/kotlin/fir/declarations/FirErrorProperty.kt | 4 ++++ .../gen/org/jetbrains/kotlin/fir/declarations/FirField.kt | 4 ++++ .../org/jetbrains/kotlin/fir/declarations/FirProperty.kt | 4 ++++ .../kotlin/fir/declarations/FirValueParameter.kt | 4 ++++ .../org/jetbrains/kotlin/fir/declarations/FirVariable.kt | 4 ++++ .../declarations/impl/FirDefaultSetterValueParameter.kt | 8 ++++++++ .../kotlin/fir/declarations/impl/FirEnumEntryImpl.kt | 4 ++++ .../kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt | 4 ++++ .../kotlin/fir/declarations/impl/FirFieldImpl.kt | 4 ++++ .../kotlin/fir/declarations/impl/FirPropertyImpl.kt | 8 ++++++++ .../kotlin/fir/declarations/impl/FirValueParameterImpl.kt | 4 ++++ .../fir/declarations/synthetic/FirSyntheticProperty.kt | 8 ++++++++ .../kotlin/fir/tree/generator/NodeConfigurator.kt | 4 ++-- 16 files changed, 76 insertions(+), 2 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index 15b2f8afe6e..6bbc43da224 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -149,6 +149,10 @@ class FirJavaField @FirImplementationDetail constructor( override fun transformDelegate(transformer: FirTransformer, data: D): FirField { return this } + + override fun replaceGetter(newGetter: FirPropertyAccessor?) {} + + override fun replaceSetter(newSetter: FirPropertyAccessor?) {} } @FirBuilderDsl diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt index 89fced2261a..64c43d39d59 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt @@ -175,6 +175,12 @@ class FirJavaValueParameter @FirImplementationDetail constructor( override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { } + + override fun replaceGetter(newGetter: FirPropertyAccessor?) { + } + + override fun replaceSetter(newSetter: FirPropertyAccessor?) { + } } @FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt index 0779bedd038..0e7ec4a2217 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt @@ -62,6 +62,10 @@ abstract class FirEnumEntry : FirVariable() { abstract override fun replaceInitializer(newInitializer: FirExpression?) + abstract override fun replaceGetter(newGetter: FirPropertyAccessor?) + + abstract override fun replaceSetter(newSetter: FirPropertyAccessor?) + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirEnumEntry abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirEnumEntry diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt index 6759a2c1c58..869678bb22a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt @@ -65,6 +65,10 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder { abstract override fun replaceInitializer(newInitializer: FirExpression?) + abstract override fun replaceGetter(newGetter: FirPropertyAccessor?) + + abstract override fun replaceSetter(newSetter: FirPropertyAccessor?) + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirErrorProperty abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirErrorProperty diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt index aa182001330..b9d36b5a94a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt @@ -62,6 +62,10 @@ abstract class FirField : FirVariable() { abstract override fun replaceInitializer(newInitializer: FirExpression?) + abstract override fun replaceGetter(newGetter: FirPropertyAccessor?) + + abstract override fun replaceSetter(newSetter: FirPropertyAccessor?) + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirField abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirField diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt index 1b190be7d9c..a96b9f0e0ef 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt @@ -70,6 +70,10 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl abstract override fun replaceInitializer(newInitializer: FirExpression?) + abstract override fun replaceGetter(newGetter: FirPropertyAccessor?) + + abstract override fun replaceSetter(newSetter: FirPropertyAccessor?) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) abstract fun replaceBodyResolveState(newBodyResolveState: FirPropertyBodyResolveState) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt index 10a2fa55800..b335268a72a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt @@ -68,6 +68,10 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner { abstract override fun replaceInitializer(newInitializer: FirExpression?) + abstract override fun replaceGetter(newGetter: FirPropertyAccessor?) + + abstract override fun replaceSetter(newSetter: FirPropertyAccessor?) + abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirValueParameter diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt index 3791d65d506..10a48756431 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt @@ -63,6 +63,10 @@ sealed class FirVariable : FirCallableDeclaration(), FirStatement { abstract fun replaceInitializer(newInitializer: FirExpression?) + abstract fun replaceGetter(newGetter: FirPropertyAccessor?) + + abstract fun replaceSetter(newSetter: FirPropertyAccessor?) + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirVariable abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirVariable diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt index 28e7abd7e0c..157110e5f82 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt @@ -170,6 +170,14 @@ internal class FirDefaultSetterValueParameter( initializer = newInitializer } + override fun replaceGetter(newGetter: FirPropertyAccessor?) { + getter = newGetter + } + + override fun replaceSetter(newSetter: FirPropertyAccessor?) { + setter = newSetter + } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { controlFlowGraphReference = newControlFlowGraphReference } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt index dbf3430586c..2403f356042 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt @@ -147,4 +147,8 @@ internal class FirEnumEntryImpl( override fun replaceInitializer(newInitializer: FirExpression?) { initializer = newInitializer } + + override fun replaceGetter(newGetter: FirPropertyAccessor?) {} + + override fun replaceSetter(newSetter: FirPropertyAccessor?) {} } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt index 2d7edb2a010..a59c6921d5b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt @@ -143,4 +143,8 @@ internal class FirErrorPropertyImpl( } override fun replaceInitializer(newInitializer: FirExpression?) {} + + override fun replaceGetter(newGetter: FirPropertyAccessor?) {} + + override fun replaceSetter(newSetter: FirPropertyAccessor?) {} } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt index 3fc3ed70ff1..3e65c5102bf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt @@ -148,4 +148,8 @@ class FirFieldImpl @FirImplementationDetail constructor( override fun replaceInitializer(newInitializer: FirExpression?) { initializer = newInitializer } + + override fun replaceGetter(newGetter: FirPropertyAccessor?) {} + + override fun replaceSetter(newSetter: FirPropertyAccessor?) {} } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt index f50611adfbc..0f21addc54b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt @@ -175,6 +175,14 @@ internal class FirPropertyImpl( initializer = newInitializer } + override fun replaceGetter(newGetter: FirPropertyAccessor?) { + getter = newGetter + } + + override fun replaceSetter(newSetter: FirPropertyAccessor?) { + setter = newSetter + } + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { controlFlowGraphReference = newControlFlowGraphReference } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt index 56b5cf37a16..e4dd663c9dd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt @@ -151,6 +151,10 @@ internal class FirValueParameterImpl( override fun replaceInitializer(newInitializer: FirExpression?) {} + override fun replaceGetter(newGetter: FirPropertyAccessor?) {} + + override fun replaceSetter(newSetter: FirPropertyAccessor?) {} + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { controlFlowGraphReference = newControlFlowGraphReference } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt index 491d010a619..0d70fa099a0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt @@ -166,4 +166,12 @@ class FirSyntheticProperty( override fun replaceBodyResolveState(newBodyResolveState: FirPropertyBodyResolveState) { throw AssertionError("Mutation of synthetic property isn't supported") } + + override fun replaceGetter(newGetter: FirPropertyAccessor?) { + throw AssertionError("Mutation of synthetic property isn't supported") + } + + override fun replaceSetter(newSetter: FirPropertyAccessor?) { + throw AssertionError("Mutation of synthetic property isn't supported") + } } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 79655959336..01622fde55a 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -389,8 +389,8 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild +initializer.withTransform().withReplace() +field("delegate", expression, nullable = true).withTransform() generateBooleanFields("var", "val") - +field("getter", propertyAccessor, nullable = true).withTransform() - +field("setter", propertyAccessor, nullable = true).withTransform() + +field("getter", propertyAccessor, nullable = true, withReplace = true).withTransform() + +field("setter", propertyAccessor, nullable = true, withReplace = true).withTransform() +field("backingField", backingField, nullable = true).withTransform() +annotations needTransformOtherChildren()