[FIR] Fix problems with renaming invocationKind and field in FirAnonymousFunction

This commit is contained in:
Dmitriy Novozhilov
2020-06-19 16:27:40 +03:00
parent 9c8e979308
commit a7675c16d5
7 changed files with 17 additions and 13 deletions
@@ -69,7 +69,7 @@ fun FirAnonymousFunction.copy(
typeRef: FirTypeRef = this.typeRef,
label: FirLabel? = this.label,
controlFlowGraphReference: FirControlFlowGraphReference = this.controlFlowGraphReference,
eventOccurrencesRange: EventOccurrencesRange? = this.eventOccurrencesRange
invocationKind: EventOccurrencesRange? = this.invocationKind
): FirAnonymousFunction {
return buildAnonymousFunction {
this.source = source
@@ -85,7 +85,7 @@ fun FirAnonymousFunction.copy(
this.typeRef = typeRef
this.label = label
this.controlFlowGraphReference = controlFlowGraphReference
this.eventOccurrencesRange = eventOccurrencesRange
this.invocationKind = invocationKind
}
}
@@ -207,7 +207,7 @@ class ControlFlowGraphBuilder {
}
fun enterAnonymousFunction(anonymousFunction: FirAnonymousFunction): Pair<PostponedLambdaEnterNode?, FunctionEnterNode> {
val invocationKind = anonymousFunction.eventOccurrencesRange
val invocationKind = anonymousFunction.invocationKind
var previousNodeIsNew = false
val symbol = anonymousFunction.symbol
@@ -293,7 +293,7 @@ class ControlFlowGraphBuilder {
lastNodes.push(postponedExitNode)
}
val invocationKind = anonymousFunction.eventOccurrencesRange
val invocationKind = anonymousFunction.invocationKind
if (invocationKind != null) {
addEdge(exitNode, postponedExitNode, preferredKind = EdgeKind.CfgForward)
} else {
@@ -37,7 +37,7 @@ abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpr
abstract override val typeRef: FirTypeRef
abstract override val symbol: FirAnonymousFunctionSymbol
abstract val label: FirLabel?
abstract val eventOccurrencesRange: EventOccurrencesRange?
abstract val invocationKind: EventOccurrencesRange?
abstract val isLambda: Boolean
abstract override val typeParameters: List<FirTypeParameter>
@@ -53,7 +53,7 @@ abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpr
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract fun replaceInvocationKind(newEventOccurrencesRange: EventOccurrencesRange?)
abstract fun replaceInvocationKind(newInvocationKind: EventOccurrencesRange?)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
@@ -13,9 +13,12 @@ import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder
import org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
@@ -25,6 +28,7 @@ import org.jetbrains.kotlin.fir.references.impl.FirEmptyControlFlowGraphReferenc
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
@@ -45,7 +49,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
lateinit var symbol: FirAnonymousFunctionSymbol
var label: FirLabel? = null
var eventOccurrencesRange: EventOccurrencesRange? = null
var invocationKind: EventOccurrencesRange? = null
var isLambda: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
@@ -63,7 +67,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
typeRef,
symbol,
label,
eventOccurrencesRange,
invocationKind,
isLambda,
typeParameters,
)
@@ -40,7 +40,7 @@ internal class FirAnonymousFunctionImpl(
override var typeRef: FirTypeRef,
override val symbol: FirAnonymousFunctionSymbol,
override var label: FirLabel?,
override var eventOccurrencesRange: EventOccurrencesRange?,
override var invocationKind: EventOccurrencesRange?,
override val isLambda: Boolean,
override val typeParameters: MutableList<FirTypeParameter>,
) : FirAnonymousFunction() {
@@ -123,6 +123,6 @@ internal class FirAnonymousFunctionImpl(
}
override fun replaceInvocationKind(newInvocationKind: EventOccurrencesRange?) {
eventOccurrencesRange = newInvocationKind
invocationKind = newInvocationKind
}
}
@@ -449,8 +449,8 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
anonymousFunction.valueParameters.renderParameters()
print(": ")
anonymousFunction.returnTypeRef.accept(this)
if (anonymousFunction.eventOccurrencesRange != null) {
print(" <kind=${anonymousFunction.eventOccurrencesRange}> ")
if (anonymousFunction.invocationKind != null) {
print(" <kind=${anonymousFunction.invocationKind}> ")
}
if (mode.renderLambdaBodies) {
anonymousFunction.body?.renderBody()
@@ -266,7 +266,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
parentArg(function, "F", anonymousFunction)
+symbol("FirAnonymousFunctionSymbol")
+field(label, nullable = true)
+field(eventOccurrencesRangeType, nullable = true, withReplace = true).apply {
+field("invocationKind", eventOccurrencesRangeType, nullable = true, withReplace = true).apply {
isMutable = true
}
+booleanField("isLambda")