[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
@@ -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")