[FIR] Add replaceGetter & replaceSetter

This commit is contained in:
Nikolay Lunyak
2021-08-09 15:55:12 +03:00
committed by TeamCityServer
parent 47abdf2de1
commit b72488b4c2
16 changed files with 76 additions and 2 deletions
@@ -149,6 +149,10 @@ class FirJavaField @FirImplementationDetail constructor(
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField {
return this
}
override fun replaceGetter(newGetter: FirPropertyAccessor?) {}
override fun replaceSetter(newSetter: FirPropertyAccessor?) {}
}
@FirBuilderDsl
@@ -175,6 +175,12 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
}
override fun replaceGetter(newGetter: FirPropertyAccessor?) {
}
override fun replaceSetter(newSetter: FirPropertyAccessor?) {
}
}
@FirBuilderDsl
@@ -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 <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntry
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirEnumEntry
@@ -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 <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorProperty
@@ -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 <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirField
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirField
@@ -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)
@@ -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 <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameter
@@ -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 <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirVariable
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirVariable
@@ -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
}
@@ -147,4 +147,8 @@ internal class FirEnumEntryImpl(
override fun replaceInitializer(newInitializer: FirExpression?) {
initializer = newInitializer
}
override fun replaceGetter(newGetter: FirPropertyAccessor?) {}
override fun replaceSetter(newSetter: FirPropertyAccessor?) {}
}
@@ -143,4 +143,8 @@ internal class FirErrorPropertyImpl(
}
override fun replaceInitializer(newInitializer: FirExpression?) {}
override fun replaceGetter(newGetter: FirPropertyAccessor?) {}
override fun replaceSetter(newSetter: FirPropertyAccessor?) {}
}
@@ -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?) {}
}
@@ -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
}
@@ -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
}
@@ -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")
}
}
@@ -389,8 +389,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(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()