From 99da7272f577a0fdedbf6892dea34c88c3f22bd6 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 15 Nov 2019 14:23:34 +0300 Subject: [PATCH] [FIR] Change children order in FirConstructor --- .../org/jetbrains/kotlin/fir/declarations/FirConstructor.kt | 2 +- .../kotlin/fir/declarations/impl/FirConstructorImpl.kt | 6 +++--- .../fir/declarations/impl/FirModifiableConstructor.kt | 2 +- .../jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt index 371565f1f68..01b7a04073c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt @@ -31,13 +31,13 @@ interface FirConstructor : FirMemberFunction { override val controlFlowGraphReference: FirControlFlowGraphReference override val typeParameters: List override val valueParameters: List - override val body: FirBlock? override val name: Name override val status: FirDeclarationStatus override val containerSource: DeserializedContainerSource? override val annotations: List override val symbol: FirConstructorSymbol val delegatedConstructor: FirDelegatedConstructorCall? + override val body: FirBlock? val isPrimary: Boolean override fun accept(visitor: FirVisitor, data: D): R = visitor.visitConstructor(this, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt index 319d12e0ab7..4e28adc7867 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt @@ -41,11 +41,11 @@ open class FirConstructorImpl( override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference() override val typeParameters: MutableList = mutableListOf() override val valueParameters: MutableList = mutableListOf() - override var body: FirBlock? = null override val name: Name = Name.special("") override var containerSource: DeserializedContainerSource? = null override val annotations: MutableList = mutableListOf() override var delegatedConstructor: FirDelegatedConstructorCall? = null + override var body: FirBlock? = null override val isPrimary: Boolean get() = false init { @@ -57,10 +57,10 @@ open class FirConstructorImpl( receiverTypeRef?.accept(visitor, data) controlFlowGraphReference.accept(visitor, data) valueParameters.forEach { it.accept(visitor, data) } - body?.accept(visitor, data) status.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } delegatedConstructor?.accept(visitor, data) + body?.accept(visitor, data) } override fun transformChildren(transformer: FirTransformer, data: D): FirConstructorImpl { @@ -68,10 +68,10 @@ open class FirConstructorImpl( transformReceiverTypeRef(transformer, data) transformControlFlowGraphReference(transformer, data) transformValueParameters(transformer, data) - body = body?.transformSingle(transformer, data) transformStatus(transformer, data) annotations.transformInplace(transformer, data) delegatedConstructor = delegatedConstructor?.transformSingle(transformer, data) + body = body?.transformSingle(transformer, data) return this } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirModifiableConstructor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirModifiableConstructor.kt index 0bc2a78d439..da652fe1c31 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirModifiableConstructor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirModifiableConstructor.kt @@ -39,13 +39,13 @@ abstract class FirModifiableConstructor : FirPureAbstractElement(), FirConstruct abstract override var controlFlowGraphReference: FirControlFlowGraphReference abstract override val typeParameters: MutableList abstract override val valueParameters: MutableList - abstract override var body: FirBlock? abstract override val name: Name abstract override var status: FirDeclarationStatus abstract override var containerSource: DeserializedContainerSource? abstract override val annotations: MutableList abstract override val symbol: FirConstructorSymbol abstract override var delegatedConstructor: FirDelegatedConstructorCall? + abstract override var body: FirBlock? abstract override val isPrimary: Boolean abstract override fun transformChildren(transformer: FirTransformer, data: D): FirModifiableConstructor diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 77bde655d9b..1055313bdcc 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -316,6 +316,7 @@ object NodeConfigurator : AbstractFieldConfigurator() { parentArg(memberFunction, "F", constructor) +symbol("FirConstructorSymbol") +field("delegatedConstructor", delegatedConstructorCall, nullable = true) + +body(nullable = true) +booleanField("isPrimary") }