[FIR] Move delegateFieldSymbol from FirVariable to FirProperty

This commit is contained in:
Dmitriy Novozhilov
2021-06-26 11:34:35 +03:00
parent dc3ee6318c
commit 62d781a70f
30 changed files with 19 additions and 60 deletions
@@ -196,7 +196,7 @@ private fun FirCallableSymbol<*>.toSymbolForCall(declarationStorage: Fir2IrDecla
is FirPropertySymbol -> declarationStorage.getIrPropertySymbol(this)
is FirFieldSymbol -> declarationStorage.getIrFieldSymbol(this)
is FirBackingFieldSymbol -> declarationStorage.getIrBackingFieldSymbol(this)
is FirDelegateFieldSymbol<*> -> declarationStorage.getIrBackingFieldSymbol(this)
is FirDelegateFieldSymbol -> declarationStorage.getIrBackingFieldSymbol(this)
is FirVariableSymbol<*> -> declarationStorage.getIrValueSymbol(this)
else -> null
}
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.FirFieldBuilder
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -127,9 +126,6 @@ class FirJavaField @FirImplementationDetail constructor(
override val delegate: FirExpression?
get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirField>?
get() = null
override var containerSource: DeserializedContainerSource? = null
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirField {
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -70,9 +69,6 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
override val delegate: FirExpression?
get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirValueParameter>?
get() = null
override val getter: FirPropertyAccessor?
get() = null
@@ -312,7 +312,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
receiver: FirExpression?
) {
if (delegateBuilder == null) return
val delegateFieldSymbol = FirDelegateFieldSymbol<FirProperty>(symbol.callableId).also {
val delegateFieldSymbol = FirDelegateFieldSymbol(symbol.callableId).also {
this.delegateFieldSymbol = it
}
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -39,7 +38,6 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>() {
abstract override val symbol: FirVariableSymbol<FirEnumEntry>
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
abstract override val delegateFieldSymbol: FirDelegateFieldSymbol<FirEnumEntry>?
abstract override val isVar: Boolean
abstract override val isVal: Boolean
abstract override val getter: FirPropertyAccessor?
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -40,7 +39,6 @@ abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnostic
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
abstract override val delegateFieldSymbol: FirDelegateFieldSymbol<FirErrorProperty>?
abstract override val isVar: Boolean
abstract override val isVal: Boolean
abstract override val getter: FirPropertyAccessor?
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -39,7 +38,6 @@ abstract class FirField : FirVariable<FirField>() {
abstract override val symbol: FirVariableSymbol<FirField>
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
abstract override val delegateFieldSymbol: FirDelegateFieldSymbol<FirField>?
abstract override val isVar: Boolean
abstract override val isVal: Boolean
abstract override val getter: FirPropertyAccessor?
@@ -39,7 +39,6 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
abstract override val delegateFieldSymbol: FirDelegateFieldSymbol<FirProperty>?
abstract override val isVar: Boolean
abstract override val isVal: Boolean
abstract override val getter: FirPropertyAccessor?
@@ -48,6 +47,7 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val symbol: FirPropertySymbol
abstract val backingFieldSymbol: FirBackingFieldSymbol
abstract val delegateFieldSymbol: FirDelegateFieldSymbol?
abstract val isLocal: Boolean
abstract override val typeParameters: List<FirTypeParameter>
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -40,7 +39,6 @@ abstract class FirValueParameter : FirVariable<FirValueParameter>(), FirControlF
abstract override val symbol: FirVariableSymbol<FirValueParameter>
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
abstract override val delegateFieldSymbol: FirDelegateFieldSymbol<FirValueParameter>?
abstract override val isVar: Boolean
abstract override val isVal: Boolean
abstract override val getter: FirPropertyAccessor?
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -40,7 +39,6 @@ sealed class FirVariable<E : FirVariable<E>> : FirCallableMemberDeclaration<E>()
abstract override val symbol: FirVariableSymbol<E>
abstract val initializer: FirExpression?
abstract val delegate: FirExpression?
abstract val delegateFieldSymbol: FirDelegateFieldSymbol<E>?
abstract val isVar: Boolean
abstract val isVal: Boolean
abstract val getter: FirPropertyAccessor?
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -49,7 +48,6 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
lateinit var symbol: FirVariableSymbol<FirValueParameter>
var initializer: FirExpression? = null
var delegate: FirExpression? = null
var delegateFieldSymbol: FirDelegateFieldSymbol<FirValueParameter>? = null
var isVar: Boolean = false
var isVal: Boolean = true
var getter: FirPropertyAccessor? = null
@@ -74,7 +72,6 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
symbol,
initializer,
delegate,
delegateFieldSymbol,
isVar,
isVal,
getter,
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.declarations.impl.FirEnumEntryImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -52,12 +52,12 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
lateinit var name: Name
var initializer: FirExpression? = null
var delegate: FirExpression? = null
var delegateFieldSymbol: FirDelegateFieldSymbol<FirProperty>? = null
var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
var getter: FirPropertyAccessor? = null
var setter: FirPropertyAccessor? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
lateinit var symbol: FirPropertySymbol
var delegateFieldSymbol: FirDelegateFieldSymbol? = null
var isLocal: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@@ -76,12 +76,12 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
name,
initializer,
delegate,
delegateFieldSymbol,
isVar,
getter,
setter,
annotations,
symbol,
delegateFieldSymbol,
isLocal,
typeParameters,
)
@@ -116,12 +116,12 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
copyBuilder.name = original.name
copyBuilder.initializer = original.initializer
copyBuilder.delegate = original.delegate
copyBuilder.delegateFieldSymbol = original.delegateFieldSymbol
copyBuilder.isVar = original.isVar
copyBuilder.getter = original.getter
copyBuilder.setter = original.setter
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.symbol = original.symbol
copyBuilder.delegateFieldSymbol = original.delegateFieldSymbol
copyBuilder.isLocal = original.isLocal
copyBuilder.typeParameters.addAll(original.typeParameters)
return copyBuilder.apply(init).build()
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -44,7 +43,6 @@ internal class FirDefaultSetterValueParameter(
override val symbol: FirVariableSymbol<FirValueParameter>,
override var initializer: FirExpression?,
override var delegate: FirExpression?,
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirValueParameter>?,
override val isVar: Boolean,
override val isVal: Boolean,
override var getter: FirPropertyAccessor?,
@@ -62,7 +60,6 @@ internal class FirDefaultSetterValueParameter(
init {
symbol.bind(this)
delegateFieldSymbol?.bind(this)
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -47,7 +46,6 @@ internal class FirEnumEntryImpl(
) : FirEnumEntry() {
override val receiverTypeRef: FirTypeRef? get() = null
override val delegate: FirExpression? get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirEnumEntry>? get() = null
override val isVar: Boolean get() = false
override val isVal: Boolean get() = true
override val getter: FirPropertyAccessor? get() = null
@@ -55,7 +53,6 @@ internal class FirEnumEntryImpl(
init {
symbol.bind(this)
delegateFieldSymbol?.bind(this)
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirErrorPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -51,14 +50,12 @@ internal class FirErrorPropertyImpl(
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
override val initializer: FirExpression? get() = null
override val delegate: FirExpression? get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirErrorProperty>? get() = null
override val isVar: Boolean get() = false
override val isVal: Boolean get() = true
override val getter: FirPropertyAccessor? get() = null
override val setter: FirPropertyAccessor? get() = null
init {
delegateFieldSymbol?.bind(this)
symbol.bind(this)
}
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -49,14 +48,12 @@ class FirFieldImpl @FirImplementationDetail constructor(
) : FirField() {
override val receiverTypeRef: FirTypeRef? get() = null
override val delegate: FirExpression? get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirField>? get() = null
override val isVal: Boolean get() = !isVar
override val getter: FirPropertyAccessor? get() = null
override val setter: FirPropertyAccessor? get() = null
init {
symbol.bind(this)
delegateFieldSymbol?.bind(this)
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -45,12 +45,12 @@ internal class FirPropertyImpl(
override val name: Name,
override var initializer: FirExpression?,
override var delegate: FirExpression?,
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirProperty>?,
override val isVar: Boolean,
override var getter: FirPropertyAccessor?,
override var setter: FirPropertyAccessor?,
override val annotations: MutableList<FirAnnotationCall>,
override val symbol: FirPropertySymbol,
override val delegateFieldSymbol: FirDelegateFieldSymbol?,
override val isLocal: Boolean,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirProperty() {
@@ -59,9 +59,9 @@ internal class FirPropertyImpl(
override val backingFieldSymbol: FirBackingFieldSymbol = FirBackingFieldSymbol(symbol.callableId)
init {
delegateFieldSymbol?.bind(this)
symbol.bind(this)
backingFieldSymbol.bind(this)
delegateFieldSymbol?.bind(this)
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusIm
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -53,7 +52,6 @@ internal class FirValueParameterImpl(
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
override val initializer: FirExpression? get() = null
override val delegate: FirExpression? get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirValueParameter>? get() = null
override val isVar: Boolean get() = false
override val isVal: Boolean get() = true
override val getter: FirPropertyAccessor? get() = null
@@ -62,7 +60,6 @@ internal class FirValueParameterImpl(
init {
symbol.bind(this)
delegateFieldSymbol?.bind(this)
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
@@ -21,7 +21,7 @@ abstract class FirDelegateFieldReference : FirResolvedNamedReference() {
abstract override val source: FirSourceElement?
abstract override val name: Name
abstract override val candidateSymbol: FirBasedSymbol<*>?
abstract override val resolvedSymbol: FirDelegateFieldSymbol<*>
abstract override val resolvedSymbol: FirDelegateFieldSymbol
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitDelegateFieldReference(this, data)
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.name.Name
class FirDelegateFieldReferenceBuilder {
var source: FirSourceElement? = null
var candidateSymbol: FirBasedSymbol<*>? = null
lateinit var resolvedSymbol: FirDelegateFieldSymbol<*>
lateinit var resolvedSymbol: FirDelegateFieldSymbol
fun build(): FirDelegateFieldReference {
return FirDelegateFieldReferenceImpl(
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirDelegateFieldReferenceImpl(
override val source: FirSourceElement?,
override val candidateSymbol: FirBasedSymbol<*>?,
override val resolvedSymbol: FirDelegateFieldSymbol<*>,
override val resolvedSymbol: FirDelegateFieldSymbol,
) : FirDelegateFieldReference() {
override val name: Name get() = Name.identifier("\$delegate")
@@ -53,7 +53,7 @@ class FirSyntheticProperty(
override val delegate: FirExpression?
get() = null
override val delegateFieldSymbol: FirDelegateFieldSymbol<FirProperty>?
override val delegateFieldSymbol: FirDelegateFieldSymbol?
get() = null
override val isLocal: Boolean
@@ -33,7 +33,7 @@ class FirIntersectionOverridePropertySymbol(
class FirBackingFieldSymbol(callableId: CallableId) : FirVariableSymbol<FirProperty>(callableId)
class FirDelegateFieldSymbol<D : FirVariable<D>>(callableId: CallableId) : FirVariableSymbol<D>(callableId) {
class FirDelegateFieldSymbol(callableId: CallableId) : FirVariableSymbol<FirProperty>(callableId) {
val delegate: FirExpression
get() = fir.delegate!!
}
@@ -273,7 +273,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
}
builder(valueParameter, type = "FirDefaultSetterValueParameter") {
defaultNull("defaultValue", "initializer", "delegate", "receiverTypeRef", "delegateFieldSymbol", "getter", "setter")
defaultNull("defaultValue", "initializer", "delegate", "receiverTypeRef", "getter", "setter")
defaultFalse("isCrossinline", "isNoinline", "isVararg", "isVar")
defaultTrue("isVal")
}
@@ -206,7 +206,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
"receiverTypeRef",
"initializer",
"delegate",
"delegateFieldSymbol",
"getter", "setter",
withGetter = true
)
@@ -221,13 +220,13 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
}
publicImplementation()
defaultNull("delegateFieldSymbol", "receiverTypeRef", "delegate", "getter", "setter", withGetter = true)
defaultNull("receiverTypeRef", "delegate", "getter", "setter", withGetter = true)
}
impl(enumEntry) {
defaultTrue("isVal", withGetter = true)
defaultFalse("isVar", withGetter = true)
defaultNull("delegateFieldSymbol", "receiverTypeRef", "delegate", "getter", "setter", withGetter = true)
defaultNull("receiverTypeRef", "delegate", "getter", "setter", withGetter = true)
}
impl(namedArgumentExpression) {
@@ -455,7 +454,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
impl(valueParameter) {
defaultTrue("isVal", withGetter = true)
defaultFalse("isVar", withGetter = true)
defaultNull("getter", "setter", "initializer", "delegate", "receiverTypeRef", "delegateFieldSymbol", withGetter = true)
defaultNull("getter", "setter", "initializer", "delegate", "receiverTypeRef", withGetter = true)
}
impl(valueParameter, "FirDefaultSetterValueParameter") {
@@ -336,6 +336,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
parentArg(variable, "E", property)
+symbol("FirPropertySymbol")
+field("backingFieldSymbol", backingFieldSymbolType)
+field("delegateFieldSymbol", delegateFieldSymbolType, nullable = true)
+booleanField("isLocal")
+typeParameters
}
@@ -393,7 +394,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+symbol("FirVariableSymbol", "E")
+initializer.withTransform().withReplace()
+field("delegate", expression, nullable = true).withTransform()
+field("delegateFieldSymbol", delegateFieldSymbolType, "E", nullable = true)
generateBooleanFields("var", "val")
+field("getter", propertyAccessor, nullable = true).withTransform()
+field("setter", propertyAccessor, nullable = true).withTransform()
@@ -578,7 +578,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
delegateFieldReference.configure {
+field("resolvedSymbol", delegateFieldSymbolType.withArgs("*"))
+field("resolvedSymbol", delegateFieldSymbolType)
}
backingFieldReference.configure {