From 2f579168690f887323353fad8360b893373824f5 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 25 Jul 2023 20:36:03 +0200 Subject: [PATCH] [FIR] add replaceStatements to FirScript It is required to implement StateKeeper for scripts statements should be MutableOrEmptyList to avoid CME ^KT-60728 ^KT-60519 --- .../gen/org/jetbrains/kotlin/fir/declarations/FirScript.kt | 2 ++ .../kotlin/fir/declarations/builder/FirScriptBuilder.kt | 2 +- .../jetbrains/kotlin/fir/declarations/impl/FirScriptImpl.kt | 6 +++++- .../jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirScript.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirScript.kt index 1345231d058..b27815d6472 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirScript.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirScript.kt @@ -41,6 +41,8 @@ abstract class FirScript : FirDeclaration() { abstract override fun replaceAnnotations(newAnnotations: List) + abstract fun replaceStatements(newStatements: List) + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirScript abstract fun transformStatements(transformer: FirTransformer, data: D): FirScript diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirScriptBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirScriptBuilder.kt index 356a0a40137..4c6366e6680 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirScriptBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirScriptBuilder.kt @@ -59,7 +59,7 @@ class FirScriptBuilder : FirAnnotationContainerBuilder { origin, attributes, name, - statements, + statements.toMutableOrEmpty(), symbol, parameters, contextReceivers.toMutableOrEmpty(), diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirScriptImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirScriptImpl.kt index 32dd4ceac79..fe80262648c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirScriptImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirScriptImpl.kt @@ -39,7 +39,7 @@ internal class FirScriptImpl( override val origin: FirDeclarationOrigin, override val attributes: FirDeclarationAttributes, override val name: Name, - override val statements: MutableList, + override var statements: MutableOrEmptyList, override val symbol: FirScriptSymbol, override val parameters: MutableList, override var contextReceivers: MutableOrEmptyList, @@ -79,4 +79,8 @@ internal class FirScriptImpl( override fun replaceAnnotations(newAnnotations: List) { annotations = newAnnotations.toMutableOrEmpty() } + + override fun replaceStatements(newStatements: List) { + statements = newStatements.toMutableOrEmpty() + } } 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 a37039dbaa6..85abdba1ef5 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 @@ -489,7 +489,7 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild script.configure { +name - +fieldList(statement).withTransform() + +fieldList(statement, withReplace = true, useMutableOrEmpty = true).withTransform() +symbol("FirScriptSymbol") +fieldList("parameters", variable, withReplace = false) +fieldList(contextReceiver, useMutableOrEmpty = true)