[FIR] Make FirPropertyAccessor inherits FirCallableMemberDeclaration
This commit is contained in:
+1
-1
@@ -620,7 +620,7 @@ class FirDeclarationCompletionResultsWriter(private val finalSubstitutor: ConeSu
|
|||||||
override fun transformPropertyAccessor(
|
override fun transformPropertyAccessor(
|
||||||
propertyAccessor: FirPropertyAccessor,
|
propertyAccessor: FirPropertyAccessor,
|
||||||
data: Nothing?
|
data: Nothing?
|
||||||
): CompositeTransformResult<FirStatement> {
|
): CompositeTransformResult<FirDeclaration> {
|
||||||
propertyAccessor.transformReturnTypeRef(this, data)
|
propertyAccessor.transformReturnTypeRef(this, data)
|
||||||
propertyAccessor.transformValueParameters(this, data)
|
propertyAccessor.transformValueParameters(this, data)
|
||||||
return propertyAccessor.compose()
|
return propertyAccessor.compose()
|
||||||
|
|||||||
+2
-2
@@ -109,10 +109,10 @@ class FirStatusResolveTransformer(
|
|||||||
override fun transformPropertyAccessor(
|
override fun transformPropertyAccessor(
|
||||||
propertyAccessor: FirPropertyAccessor,
|
propertyAccessor: FirPropertyAccessor,
|
||||||
data: FirDeclarationStatus?
|
data: FirDeclarationStatus?
|
||||||
): CompositeTransformResult<FirStatement> {
|
): CompositeTransformResult<FirDeclaration> {
|
||||||
propertyAccessor.transformStatus(this, propertyAccessor.resolveStatus(propertyAccessor.status, containingClass, isLocal = false))
|
propertyAccessor.transformStatus(this, propertyAccessor.resolveStatus(propertyAccessor.status, containingClass, isLocal = false))
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
return transformDeclaration(propertyAccessor, data) as CompositeTransformResult<FirStatement>
|
return transformDeclaration(propertyAccessor, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformConstructor(
|
override fun transformConstructor(
|
||||||
|
|||||||
+1
-1
@@ -87,7 +87,7 @@ private class FirDeclarationsResolveTransformerForArgumentAnnotations(
|
|||||||
override fun transformPropertyAccessor(
|
override fun transformPropertyAccessor(
|
||||||
propertyAccessor: FirPropertyAccessor,
|
propertyAccessor: FirPropertyAccessor,
|
||||||
data: ResolutionMode
|
data: ResolutionMode
|
||||||
): CompositeTransformResult<FirStatement> {
|
): CompositeTransformResult<FirDeclaration> {
|
||||||
propertyAccessor.transformAnnotations(this, data)
|
propertyAccessor.transformAnnotations(this, data)
|
||||||
return propertyAccessor.compose()
|
return propertyAccessor.compose()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
|
|||||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -21,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPropertyAccessor>, FirContractDescriptionOwner, FirTypeParametersOwner {
|
abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPropertyAccessor>, FirCallableMemberDeclaration<FirPropertyAccessor>, FirContractDescriptionOwner, FirTypeParametersOwner {
|
||||||
abstract override val source: FirSourceElement?
|
abstract override val source: FirSourceElement?
|
||||||
abstract override val session: FirSession
|
abstract override val session: FirSession
|
||||||
abstract override val resolvePhase: FirResolvePhase
|
abstract override val resolvePhase: FirResolvePhase
|
||||||
@@ -32,11 +33,12 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPr
|
|||||||
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
abstract override val valueParameters: List<FirValueParameter>
|
abstract override val valueParameters: List<FirValueParameter>
|
||||||
abstract override val body: FirBlock?
|
abstract override val body: FirBlock?
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val contractDescription: FirContractDescription
|
abstract override val contractDescription: FirContractDescription
|
||||||
abstract override val symbol: FirPropertyAccessorSymbol
|
abstract override val symbol: FirPropertyAccessorSymbol
|
||||||
abstract val isGetter: Boolean
|
abstract val isGetter: Boolean
|
||||||
abstract val isSetter: Boolean
|
abstract val isSetter: Boolean
|
||||||
abstract val status: FirDeclarationStatus
|
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val typeParameters: List<FirTypeParameter>
|
abstract override val typeParameters: List<FirTypeParameter>
|
||||||
|
|
||||||
@@ -62,9 +64,9 @@ abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPr
|
|||||||
|
|
||||||
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
abstract override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
abstract fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
|
|||||||
+7
-3
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This file was generated automatically
|
* This file was generated automatically
|
||||||
@@ -44,10 +45,11 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
|
|||||||
override lateinit var returnTypeRef: FirTypeRef
|
override lateinit var returnTypeRef: FirTypeRef
|
||||||
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
||||||
override var body: FirBlock? = null
|
override var body: FirBlock? = null
|
||||||
|
lateinit var status: FirDeclarationStatus
|
||||||
|
var containerSource: DeserializedContainerSource? = null
|
||||||
var contractDescription: FirContractDescription = FirEmptyContractDescription
|
var contractDescription: FirContractDescription = FirEmptyContractDescription
|
||||||
lateinit var symbol: FirPropertyAccessorSymbol
|
lateinit var symbol: FirPropertyAccessorSymbol
|
||||||
var isGetter: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
var isGetter: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
||||||
lateinit var status: FirDeclarationStatus
|
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
||||||
|
|
||||||
@@ -61,10 +63,11 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
|
|||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
body,
|
body,
|
||||||
|
status,
|
||||||
|
containerSource,
|
||||||
contractDescription,
|
contractDescription,
|
||||||
symbol,
|
symbol,
|
||||||
isGetter,
|
isGetter,
|
||||||
status,
|
|
||||||
annotations,
|
annotations,
|
||||||
typeParameters,
|
typeParameters,
|
||||||
)
|
)
|
||||||
@@ -93,10 +96,11 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
|
|||||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||||
copyBuilder.valueParameters.addAll(original.valueParameters)
|
copyBuilder.valueParameters.addAll(original.valueParameters)
|
||||||
copyBuilder.body = original.body
|
copyBuilder.body = original.body
|
||||||
|
copyBuilder.status = original.status
|
||||||
|
copyBuilder.containerSource = original.containerSource
|
||||||
copyBuilder.contractDescription = original.contractDescription
|
copyBuilder.contractDescription = original.contractDescription
|
||||||
copyBuilder.symbol = original.symbol
|
copyBuilder.symbol = original.symbol
|
||||||
copyBuilder.isGetter = original.isGetter
|
copyBuilder.isGetter = original.isGetter
|
||||||
copyBuilder.status = original.status
|
|
||||||
copyBuilder.annotations.addAll(original.annotations)
|
copyBuilder.annotations.addAll(original.annotations)
|
||||||
copyBuilder.typeParameters.addAll(original.typeParameters)
|
copyBuilder.typeParameters.addAll(original.typeParameters)
|
||||||
return copyBuilder.apply(init).build()
|
return copyBuilder.apply(init).build()
|
||||||
|
|||||||
+9
-7
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
|
|||||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -37,10 +38,11 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
|
|||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
override val valueParameters: MutableList<FirValueParameter>,
|
override val valueParameters: MutableList<FirValueParameter>,
|
||||||
override var body: FirBlock?,
|
override var body: FirBlock?,
|
||||||
|
override var status: FirDeclarationStatus,
|
||||||
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override var contractDescription: FirContractDescription,
|
override var contractDescription: FirContractDescription,
|
||||||
override val symbol: FirPropertyAccessorSymbol,
|
override val symbol: FirPropertyAccessorSymbol,
|
||||||
override val isGetter: Boolean,
|
override val isGetter: Boolean,
|
||||||
override var status: FirDeclarationStatus,
|
|
||||||
override val annotations: MutableList<FirAnnotationCall>,
|
override val annotations: MutableList<FirAnnotationCall>,
|
||||||
override val typeParameters: MutableList<FirTypeParameter>,
|
override val typeParameters: MutableList<FirTypeParameter>,
|
||||||
) : FirPropertyAccessor() {
|
) : FirPropertyAccessor() {
|
||||||
@@ -58,8 +60,8 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
|
|||||||
controlFlowGraphReference?.accept(visitor, data)
|
controlFlowGraphReference?.accept(visitor, data)
|
||||||
valueParameters.forEach { it.accept(visitor, data) }
|
valueParameters.forEach { it.accept(visitor, data) }
|
||||||
body?.accept(visitor, data)
|
body?.accept(visitor, data)
|
||||||
contractDescription.accept(visitor, data)
|
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
|
contractDescription.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
typeParameters.forEach { it.accept(visitor, data) }
|
typeParameters.forEach { it.accept(visitor, data) }
|
||||||
}
|
}
|
||||||
@@ -69,8 +71,8 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
|
|||||||
controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data)
|
controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data)
|
||||||
transformValueParameters(transformer, data)
|
transformValueParameters(transformer, data)
|
||||||
transformBody(transformer, data)
|
transformBody(transformer, data)
|
||||||
transformContractDescription(transformer, data)
|
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
|
transformContractDescription(transformer, data)
|
||||||
transformAnnotations(transformer, data)
|
transformAnnotations(transformer, data)
|
||||||
transformTypeParameters(transformer, data)
|
transformTypeParameters(transformer, data)
|
||||||
return this
|
return this
|
||||||
@@ -95,13 +97,13 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
||||||
contractDescription = contractDescription.transformSingle(transformer, data)
|
status = status.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
override fun <D> transformContractDescription(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
||||||
status = status.transformSingle(transformer, data)
|
contractDescription = contractDescription.transformSingle(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformElement(simpleFunction, data)
|
return transformElement(simpleFunction, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun transformPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: D): CompositeTransformResult<FirStatement> {
|
open fun transformPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: D): CompositeTransformResult<FirDeclaration> {
|
||||||
return transformElement(propertyAccessor, data)
|
return transformElement(propertyAccessor, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -794,7 +794,7 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformSimpleFunction(simpleFunction, data)
|
return transformSimpleFunction(simpleFunction, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: D): CompositeTransformResult<FirStatement> {
|
final override fun visitPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: D): CompositeTransformResult<FirDeclaration> {
|
||||||
return transformPropertyAccessor(propertyAccessor, data)
|
return transformPropertyAccessor(propertyAccessor, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -42,10 +42,11 @@ abstract class FirDefaultPropertyAccessor(
|
|||||||
propertyTypeRef,
|
propertyTypeRef,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
body = null,
|
body = null,
|
||||||
|
FirDeclarationStatusImpl(visibility, Modality.FINAL),
|
||||||
|
containerSource = null,
|
||||||
contractDescription = FirEmptyContractDescription,
|
contractDescription = FirEmptyContractDescription,
|
||||||
symbol,
|
symbol,
|
||||||
isGetter,
|
isGetter,
|
||||||
FirDeclarationStatusImpl(visibility, Modality.FINAL),
|
|
||||||
annotations = mutableListOf(),
|
annotations = mutableListOf(),
|
||||||
typeParameters = mutableListOf(),
|
typeParameters = mutableListOf(),
|
||||||
) {
|
) {
|
||||||
|
|||||||
+4
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
|||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
class FirSyntheticPropertyAccessor(
|
class FirSyntheticPropertyAccessor(
|
||||||
val delegate: FirSimpleFunction,
|
val delegate: FirSimpleFunction,
|
||||||
@@ -70,6 +71,8 @@ class FirSyntheticPropertyAccessor(
|
|||||||
|
|
||||||
override val contractDescription: FirContractDescription = FirEmptyContractDescription
|
override val contractDescription: FirContractDescription = FirEmptyContractDescription
|
||||||
|
|
||||||
|
override val containerSource: DeserializedContainerSource? get() = null
|
||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
delegate.accept(visitor, data)
|
delegate.accept(visitor, data)
|
||||||
controlFlowGraphReference?.accept(visitor, data)
|
controlFlowGraphReference?.accept(visitor, data)
|
||||||
@@ -135,4 +138,4 @@ class FirSyntheticPropertyAccessor(
|
|||||||
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
|
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
|
||||||
throw AssertionError("Mutation of synthetic property accessor isn't supported")
|
throw AssertionError("Mutation of synthetic property accessor isn't supported")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -55,7 +55,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
|
|
||||||
val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration)
|
val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration)
|
||||||
val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner, typeParametersOwner)
|
val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner, typeParametersOwner)
|
||||||
val propertyAccessor = element("PropertyAccessor", Declaration, function, contractDescriptionOwner, typeParametersOwner)
|
val propertyAccessor = element("PropertyAccessor", Declaration, function, callableMemberDeclaration, contractDescriptionOwner, typeParametersOwner)
|
||||||
val constructor = element("Constructor", Declaration, function, callableMemberDeclaration, typeParameterRefsOwner)
|
val constructor = element("Constructor", Declaration, function, callableMemberDeclaration, typeParameterRefsOwner)
|
||||||
val file = element("File", Declaration, annotatedDeclaration)
|
val file = element("File", Declaration, annotatedDeclaration)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -318,10 +318,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
|
|
||||||
propertyAccessor.configure {
|
propertyAccessor.configure {
|
||||||
parentArg(function, "F", propertyAccessor)
|
parentArg(function, "F", propertyAccessor)
|
||||||
|
parentArg(callableMemberDeclaration, "F", propertyAccessor)
|
||||||
+symbol("FirPropertyAccessorSymbol")
|
+symbol("FirPropertyAccessorSymbol")
|
||||||
+booleanField("isGetter")
|
+booleanField("isGetter")
|
||||||
+booleanField("isSetter")
|
+booleanField("isSetter")
|
||||||
+status.withTransform()
|
|
||||||
+annotations
|
+annotations
|
||||||
+typeParameters
|
+typeParameters
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user