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