[FIR] Add transformDelegate for FirProperty
This commit is contained in:
@@ -116,6 +116,10 @@ class FirJavaField @FirImplementationDetail constructor(
|
||||
}
|
||||
|
||||
override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) {}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField {
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
@FirBuilderDsl
|
||||
|
||||
+2
@@ -134,6 +134,7 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
|
||||
assert(variable.isLocal)
|
||||
val resolutionMode = withExpectedType(variable.returnTypeRef)
|
||||
variable.transformInitializer(transformer, resolutionMode)
|
||||
.transformDelegate(transformer, resolutionMode)
|
||||
.transformOtherChildren(transformer, resolutionMode)
|
||||
.transformInitializer(integerLiteralTypeApproximator, null)
|
||||
if (variable.initializer != null) {
|
||||
@@ -150,6 +151,7 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
|
||||
val data = withExpectedType(returnTypeRef)
|
||||
return transformReturnTypeRef(transformer, data)
|
||||
.transformInitializer(transformer, data)
|
||||
.transformDelegate(transformer, data)
|
||||
.transformOtherChildren(transformer, data)
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDecl
|
||||
|
||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||
|
||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||
|
||||
abstract override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||
|
||||
abstract override fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||
|
||||
@@ -49,6 +49,8 @@ abstract class FirField : FirVariable<FirField>(), FirCallableMemberDeclaration<
|
||||
|
||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirField
|
||||
|
||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField
|
||||
|
||||
abstract override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirField
|
||||
|
||||
abstract override fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirField
|
||||
|
||||
@@ -54,6 +54,8 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
|
||||
|
||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirProperty
|
||||
|
||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirProperty
|
||||
|
||||
abstract override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirProperty
|
||||
|
||||
abstract override fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirProperty
|
||||
|
||||
@@ -49,6 +49,8 @@ abstract class FirValueParameter : FirVariable<FirValueParameter>() {
|
||||
|
||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||
|
||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||
|
||||
abstract override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||
|
||||
abstract override fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||
|
||||
@@ -47,6 +47,8 @@ abstract class FirVariable<F : FirVariable<F>> : FirPureAbstractElement(), FirCa
|
||||
|
||||
abstract fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirVariable<F>
|
||||
|
||||
abstract fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirVariable<F>
|
||||
|
||||
abstract fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirVariable<F>
|
||||
|
||||
abstract fun <D> transformSetter(transformer: FirTransformer<D>, data: D): FirVariable<F>
|
||||
|
||||
+6
-1
@@ -65,6 +65,7 @@ internal class FirDefaultSetterValueParameter(
|
||||
transformReturnTypeRef(transformer, data)
|
||||
transformReceiverTypeRef(transformer, data)
|
||||
transformInitializer(transformer, data)
|
||||
transformDelegate(transformer, data)
|
||||
transformGetter(transformer, data)
|
||||
transformSetter(transformer, data)
|
||||
transformOtherChildren(transformer, data)
|
||||
@@ -86,6 +87,11 @@ internal class FirDefaultSetterValueParameter(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
||||
delegate = delegate?.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
||||
getter = getter?.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -97,7 +103,6 @@ internal class FirDefaultSetterValueParameter(
|
||||
}
|
||||
|
||||
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
||||
delegate = delegate?.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
defaultValue = defaultValue?.transformSingle(transformer, data)
|
||||
return this
|
||||
|
||||
@@ -82,6 +82,10 @@ internal class FirEnumEntryImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -79,6 +79,10 @@ internal class FirFieldImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
||||
return this
|
||||
}
|
||||
|
||||
@@ -76,6 +76,7 @@ internal class FirPropertyImpl(
|
||||
transformReturnTypeRef(transformer, data)
|
||||
transformReceiverTypeRef(transformer, data)
|
||||
transformInitializer(transformer, data)
|
||||
transformDelegate(transformer, data)
|
||||
transformGetter(transformer, data)
|
||||
transformSetter(transformer, data)
|
||||
transformControlFlowGraphReference(transformer, data)
|
||||
@@ -99,6 +100,11 @@ internal class FirPropertyImpl(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
||||
delegate = delegate?.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
||||
getter = getter?.transformSingle(transformer, data)
|
||||
return this
|
||||
@@ -120,7 +126,6 @@ internal class FirPropertyImpl(
|
||||
}
|
||||
|
||||
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
||||
delegate = delegate?.transformSingle(transformer, data)
|
||||
annotations.transformInplace(transformer, data)
|
||||
typeParameters.transformInplace(transformer, data)
|
||||
return this
|
||||
|
||||
+4
@@ -76,6 +76,10 @@ open class FirValueParameterImpl @FirImplementationDetail constructor(
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformGetter(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
||||
return this
|
||||
}
|
||||
|
||||
+4
@@ -112,6 +112,10 @@ class FirSyntheticProperty(
|
||||
throw AssertionError("Transformation of synthetic property isn't supported")
|
||||
}
|
||||
|
||||
override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirProperty {
|
||||
throw AssertionError("Transformation of synthetic property isn't supported")
|
||||
}
|
||||
|
||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||
resolvePhase = newResolvePhase
|
||||
}
|
||||
|
||||
+1
-1
@@ -337,7 +337,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
+name
|
||||
+symbol("FirVariableSymbol", "F")
|
||||
+initializer.withTransform()
|
||||
+field("delegate", expression, nullable = true)
|
||||
+field("delegate", expression, nullable = true).withTransform()
|
||||
+field("delegateFieldSymbol", delegateFieldSymbolType, "F", nullable = true)
|
||||
generateBooleanFields("var", "val")
|
||||
+field("getter", propertyAccessor, nullable = true).withTransform()
|
||||
|
||||
Reference in New Issue
Block a user