From eef9b870474b76a1f081da9b9db647995b3920e6 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 9 Apr 2020 13:47:55 +0300 Subject: [PATCH] [FIR] List for unresolved effects to resolved contract node --- .../kotlin/fir/contracts/FirResolvedContractDescription.kt | 2 ++ .../builder/FirResolvedContractDescriptionBuilder.kt | 3 +++ .../contracts/impl/FirResolvedContractDescriptionImpl.kt | 7 ++++++- .../kotlin/fir/tree/generator/NodeConfigurator.kt | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt index fd6905289ef..abc6bb7bb80 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.contracts import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.contracts.description.ConeEffectDeclaration +import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.visitors.* /* @@ -17,6 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.* abstract class FirResolvedContractDescription : FirContractDescription() { abstract override val source: FirSourceElement? abstract val effects: List + abstract val unresolvedEffects: List override fun accept(visitor: FirVisitor, data: D): R = visitor.visitResolvedContractDescription(this, data) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt index 31f1bcfed09..0413fbf1caf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.contracts.FirResolvedContractDescription import org.jetbrains.kotlin.fir.contracts.description.ConeEffectDeclaration import org.jetbrains.kotlin.fir.contracts.impl.FirResolvedContractDescriptionImpl +import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.visitors.* /* @@ -22,11 +23,13 @@ import org.jetbrains.kotlin.fir.visitors.* class FirResolvedContractDescriptionBuilder { var source: FirSourceElement? = null val effects: MutableList = mutableListOf() + val unresolvedEffects: MutableList = mutableListOf() fun build(): FirResolvedContractDescription { return FirResolvedContractDescriptionImpl( source, effects, + unresolvedEffects, ) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt index f9ddb13463e..1d889207420 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.contracts.impl import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.contracts.FirResolvedContractDescription import org.jetbrains.kotlin.fir.contracts.description.ConeEffectDeclaration +import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.visitors.* /* @@ -18,10 +19,14 @@ import org.jetbrains.kotlin.fir.visitors.* internal class FirResolvedContractDescriptionImpl( override val source: FirSourceElement?, override val effects: MutableList, + override val unresolvedEffects: MutableList, ) : FirResolvedContractDescription() { - override fun acceptChildren(visitor: FirVisitor, data: D) {} + override fun acceptChildren(visitor: FirVisitor, data: D) { + unresolvedEffects.forEach { it.accept(visitor, data) } + } override fun transformChildren(transformer: FirTransformer, data: D): FirResolvedContractDescriptionImpl { + unresolvedEffects.transformInplace(transformer, data) return this } } 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 5d693cbac0e..2b989ab3c53 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 @@ -582,6 +582,7 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild resolvedContractDescription.configure { +fieldList("effects", effectDeclarationType) + +fieldList("unresolvedEffects", statement) } } }