[FIR] Make anonymous initializer lazy in RawFirBuilder

Fourth step for KT-52615

Merge-request: KT-MR-7798
Merged-by: Egor Kulikov <Egor.Kulikov@jetbrains.com>
This commit is contained in:
Egor Kulikov
2022-11-25 11:41:44 +00:00
committed by Space Team
parent a454d42e65
commit d585f068dd
10 changed files with 43 additions and 124 deletions
@@ -40,5 +40,7 @@ abstract class FirAnonymousInitializer : FirDeclaration(), FirControlFlowGraphOw
abstract override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?)
abstract fun replaceBody(newBody: FirBlock?)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirAnonymousInitializer
}
@@ -63,4 +63,8 @@ internal class FirAnonymousInitializerImpl(
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
controlFlowGraphReference = newControlFlowGraphReference
}
override fun replaceBody(newBody: FirBlock?) {
body = newBody
}
}
@@ -437,7 +437,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
anonymousInitializer.configure {
+body(nullable = true)
+body(nullable = true, withReplace = true)
+symbol("FirAnonymousInitializerSymbol")
}