[FIR] Add control flow graph to FirAnonymousInitializer
This commit is contained in:
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirPureAbstractElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
@@ -21,6 +22,9 @@ abstract class FirAnonymousInitializer : FirPureAbstractElement(), FirDeclaratio
|
||||
abstract override val session: FirSession
|
||||
abstract override val resolvePhase: FirResolvePhase
|
||||
abstract val body: FirBlock?
|
||||
abstract val controlFlowGraphReference: FirControlFlowGraphReference
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitAnonymousInitializer(this, data)
|
||||
|
||||
abstract fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirAnonymousInitializer
|
||||
}
|
||||
|
||||
+2
@@ -13,6 +13,8 @@ import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousInitializerImpl
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
|
||||
+11
@@ -10,6 +10,8 @@ import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReference
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
|
||||
/*
|
||||
@@ -23,12 +25,21 @@ internal class FirAnonymousInitializerImpl(
|
||||
override var resolvePhase: FirResolvePhase,
|
||||
override var body: FirBlock?,
|
||||
) : FirAnonymousInitializer() {
|
||||
override var controlFlowGraphReference: FirControlFlowGraphReference = FirEmptyControlFlowGraphReference
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
body?.accept(visitor, data)
|
||||
controlFlowGraphReference.accept(visitor, data)
|
||||
}
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousInitializerImpl {
|
||||
body = body?.transformSingle(transformer, data)
|
||||
transformControlFlowGraphReference(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirAnonymousInitializerImpl {
|
||||
controlFlowGraphReference = controlFlowGraphReference.transformSingle(transformer, data)
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
+1
@@ -367,6 +367,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
anonymousInitializer.configure {
|
||||
+body(nullable = true)
|
||||
+controlFlowGraphReferenceField
|
||||
}
|
||||
|
||||
file.configure {
|
||||
|
||||
Reference in New Issue
Block a user