FIR: Add FirCallableMemberDeclaration::dispatchReceiverType

This commit is contained in:
Denis Zharkov
2020-10-07 16:23:21 +03:00
parent 0fa2cc15de
commit 995b1aa1eb
26 changed files with 66 additions and 2 deletions
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
@@ -31,6 +32,7 @@ interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : Fi
override val typeParameters: List<FirTypeParameterRef>
override val status: FirDeclarationStatus
val containerSource: DeserializedContainerSource?
val dispatchReceiverType: ConeKotlinType?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableMemberDeclaration(this, data)
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
@@ -35,6 +36,7 @@ abstract class FirConstructor : FirPureAbstractElement(), FirFunction<FirConstru
abstract override val valueParameters: List<FirValueParameter>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val annotations: List<FirAnnotationCall>
abstract override val symbol: FirConstructorSymbol
abstract val delegatedConstructor: FirDelegatedConstructorCall?
@@ -11,6 +11,7 @@ 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
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -42,6 +43,7 @@ abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDecl
abstract override val typeParameters: List<FirTypeParameterRef>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitEnumEntry(this, data)
@@ -11,6 +11,7 @@ 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
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -42,6 +43,7 @@ abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCa
abstract override val typeParameters: List<FirTypeParameter>
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitField(this, data)
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -43,6 +44,7 @@ abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner,
abstract override val typeParameters: List<FirTypeParameter>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val symbol: FirPropertySymbol
abstract val backingFieldSymbol: FirBackingFieldSymbol
abstract val isLocal: Boolean
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
@@ -35,6 +36,7 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPr
abstract override val body: FirBlock?
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val contractDescription: FirContractDescription
abstract override val symbol: FirPropertyAccessorSymbol
abstract val isGetter: Boolean
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -36,6 +37,7 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimp
abstract override val body: FirBlock?
abstract override val status: FirDeclarationStatus
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeKotlinType?
abstract override val contractDescription: FirContractDescription
abstract val name: Name
abstract override val symbol: FirFunctionSymbol<FirSimpleFunction>
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -46,6 +47,7 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder {
abstract var controlFlowGraphReference: FirControlFlowGraphReference?
abstract var status: FirDeclarationStatus
abstract var containerSource: DeserializedContainerSource?
abstract var dispatchReceiverType: ConeKotlinType?
abstract var symbol: FirConstructorSymbol
abstract var delegatedConstructor: FirDelegatedConstructorCall?
override fun build(): FirConstructor
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -46,6 +47,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeKotlinType? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol
override var delegatedConstructor: FirDelegatedConstructorCall? = null
@@ -64,6 +66,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
valueParameters,
status,
containerSource,
dispatchReceiverType,
annotations,
symbol,
delegatedConstructor,
@@ -22,6 +22,7 @@ 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
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -47,6 +48,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
lateinit var status: FirDeclarationStatus
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
override fun build(): FirEnumEntry {
return FirEnumEntryImpl(
@@ -63,6 +65,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
typeParameters,
status,
containerSource,
dispatchReceiverType,
)
}
@@ -22,6 +22,7 @@ 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
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -47,6 +48,7 @@ open class FirFieldBuilder : FirAnnotationContainerBuilder {
open val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
open lateinit var status: FirDeclarationStatus
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeKotlinType? = null
override fun build(): FirField {
return FirFieldImpl(
@@ -63,6 +65,7 @@ open class FirFieldBuilder : FirAnnotationContainerBuilder {
typeParameters,
status,
containerSource,
dispatchReceiverType,
)
}
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -46,6 +47,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override lateinit var status: FirDeclarationStatus
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeKotlinType? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol
override var delegatedConstructor: FirDelegatedConstructorCall? = null
@@ -64,6 +66,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
valueParameters,
status,
containerSource,
dispatchReceiverType,
annotations,
symbol,
delegatedConstructor,
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -48,6 +49,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
override var body: FirBlock? = null
lateinit var status: FirDeclarationStatus
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
var contractDescription: FirContractDescription = FirEmptyContractDescription
lateinit var symbol: FirPropertyAccessorSymbol
var isGetter: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -67,6 +69,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
body,
status,
containerSource,
dispatchReceiverType,
contractDescription,
symbol,
isGetter,
@@ -101,6 +104,7 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
copyBuilder.body = original.body
copyBuilder.status = original.status
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contractDescription = original.contractDescription
copyBuilder.symbol = original.symbol
copyBuilder.isGetter = original.isGetter
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -54,6 +55,7 @@ class FirPropertyBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContainer
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
override val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeKotlinType? = null
lateinit var symbol: FirPropertySymbol
var isLocal: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
lateinit var status: FirDeclarationStatus
@@ -77,6 +79,7 @@ class FirPropertyBuilder : FirTypeParametersOwnerBuilder, FirAnnotationContainer
annotations,
typeParameters,
containerSource,
dispatchReceiverType,
symbol,
isLocal,
status,
@@ -116,6 +119,7 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.typeParameters.addAll(original.typeParameters)
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.symbol = original.symbol
copyBuilder.isLocal = original.isLocal
copyBuilder.status = original.status
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
@@ -50,6 +51,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
override var body: FirBlock? = null
open lateinit var status: FirDeclarationStatus
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeKotlinType? = null
open var contractDescription: FirContractDescription = FirEmptyContractDescription
open lateinit var name: Name
open lateinit var symbol: FirFunctionSymbol<FirSimpleFunction>
@@ -70,6 +72,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
body,
status,
containerSource,
dispatchReceiverType,
contractDescription,
name,
symbol,
@@ -105,6 +108,7 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF
copyBuilder.body = original.body
copyBuilder.status = original.status
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contractDescription = original.contractDescription
copyBuilder.name = original.name
copyBuilder.symbol = original.symbol
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
@@ -40,6 +41,7 @@ internal class FirConstructorImpl(
override val valueParameters: MutableList<FirValueParameter>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val annotations: MutableList<FirAnnotationCall>,
override val symbol: FirConstructorSymbol,
override var delegatedConstructor: FirDelegatedConstructorCall?,
@@ -18,6 +18,7 @@ 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
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -42,6 +43,7 @@ internal class FirEnumEntryImpl(
override val typeParameters: MutableList<FirTypeParameterRef>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
) : FirEnumEntry() {
override val receiverTypeRef: FirTypeRef? get() = null
override val delegate: FirExpression? get() = null
@@ -18,6 +18,7 @@ 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
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -42,6 +43,7 @@ internal class FirFieldImpl(
override val typeParameters: MutableList<FirTypeParameter>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
) : FirField() {
override val receiverTypeRef: FirTypeRef? get() = null
override val initializer: FirExpression? get() = null
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
@@ -40,6 +41,7 @@ internal class FirPrimaryConstructor(
override val valueParameters: MutableList<FirValueParameter>,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val annotations: MutableList<FirAnnotationCall>,
override val symbol: FirConstructorSymbol,
override var delegatedConstructor: FirDelegatedConstructorCall?,
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.fir.visitors.*
@@ -41,6 +42,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override var body: FirBlock?,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override var contractDescription: FirContractDescription,
override val symbol: FirPropertyAccessorSymbol,
override val isGetter: Boolean,
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -48,6 +49,7 @@ internal class FirPropertyImpl(
override val annotations: MutableList<FirAnnotationCall>,
override val typeParameters: MutableList<FirTypeParameter>,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override val symbol: FirPropertySymbol,
override val isLocal: Boolean,
override var status: FirDeclarationStatus,
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -42,6 +43,7 @@ open class FirSimpleFunctionImpl @FirImplementationDetail constructor(
override var body: FirBlock?,
override var status: FirDeclarationStatus,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeKotlinType?,
override var contractDescription: FirContractDescription,
override val name: Name,
override val symbol: FirFunctionSymbol<FirSimpleFunction>,
@@ -6,10 +6,10 @@
package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -46,6 +46,7 @@ abstract class FirDefaultPropertyAccessor(
body = null,
FirDeclarationStatusImpl(visibility, Modality.FINAL),
containerSource = null,
dispatchReceiverType = null,
contractDescription = FirEmptyContractDescription,
symbol,
isGetter,
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirBackingFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@@ -37,6 +38,9 @@ class FirSyntheticProperty(
override val returnTypeRef: FirTypeRef
get() = getter.returnTypeRef
override val dispatchReceiverType: ConeKotlinType?
get() = getter.dispatchReceiverType
override val source: FirSourceElement?
get() = null
@@ -145,4 +149,4 @@ class FirSyntheticProperty(
override fun replaceInitializer(newInitializer: FirExpression?) {
throw AssertionError("Mutation of synthetic property isn't supported")
}
}
}
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@@ -42,6 +43,9 @@ class FirSyntheticPropertyAccessor(
override val status: FirDeclarationStatus
get() = delegate.status
override val dispatchReceiverType: ConeKotlinType?
get() = delegate.dispatchReceiverType
override val receiverTypeRef: FirTypeRef?
get() = null
@@ -95,6 +95,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
withArg("F", "FirCallableMemberDeclaration<F>")
parentArg(callableDeclaration, "F", "F")
+field("containerSource", type(DeserializedContainerSource::class), nullable = true)
+field("dispatchReceiverType", coneKotlinTypeType, nullable = true)
}
function.configure {