FIR: Prepare tree for context receivers

This commit is contained in:
Denis.Zharkov
2022-02-16 11:40:51 +03:00
committed by teamcity
parent c4bb445c01
commit a89680fb34
68 changed files with 317 additions and 6 deletions
@@ -52,6 +52,9 @@ class FirJavaClass @FirImplementationDetail internal constructor(
override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null
override var deprecation: DeprecationsPerUseSite? = null override var deprecation: DeprecationsPerUseSite? = null
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
init { init {
symbol.bind(this) symbol.bind(this)
} }
@@ -63,6 +63,8 @@ class FirJavaConstructor @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() } override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirJavaConstructor { override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirJavaConstructor {
valueParameters.transformInplace(transformer, data) valueParameters.transformInplace(transformer, data)
@@ -67,6 +67,9 @@ class FirJavaField @FirImplementationDetail constructor(
annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true) annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true)
} }
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirField { override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirField {
returnTypeRef = returnTypeRef.transformSingle(transformer, data) returnTypeRef = returnTypeRef.transformSingle(transformer, data)
return this return this
@@ -85,6 +85,9 @@ class FirJavaMethod @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() } override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
//not used actually, because get 'enhanced' into regular FirSimpleFunction //not used actually, because get 'enhanced' into regular FirSimpleFunction
override var deprecation: DeprecationsPerUseSite? = null override var deprecation: DeprecationsPerUseSite? = null
@@ -223,6 +226,10 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
throw IllegalStateException() throw IllegalStateException()
} }
@Deprecated("Modification of 'contextReceivers' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN)
override val contextReceivers: MutableList<FirContextReceiver>
get() = throw IllegalStateException()
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
override fun build(): FirJavaMethod { override fun build(): FirJavaMethod {
return FirJavaMethod( return FirJavaMethod(
@@ -97,6 +97,9 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
override val dispatchReceiverType: ConeSimpleKotlinType? override val dispatchReceiverType: ConeSimpleKotlinType?
get() = null get() = null
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
@@ -37,6 +37,7 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
@@ -35,6 +35,7 @@ abstract class FirBackingField : FirVariable(), FirTypeParametersOwner, FirState
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name abstract override val name: Name
abstract override val delegate: FirExpression? abstract override val delegate: FirExpression?
abstract override val isVar: Boolean abstract override val isVar: Boolean
@@ -35,6 +35,7 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() {
abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration> abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration>
abstract val containerSource: DeserializedContainerSource? abstract val containerSource: DeserializedContainerSource?
abstract val dispatchReceiverType: ConeSimpleKotlinType? abstract val dispatchReceiverType: ConeSimpleKotlinType?
abstract val contextReceivers: List<FirContextReceiver>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableDeclaration(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableDeclaration(this, data)
@@ -36,6 +36,7 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val annotations: List<FirAnnotation> abstract override val annotations: List<FirAnnotation>
@@ -0,0 +1,34 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirContextReceiver : FirPureAbstractElement(), FirElement {
abstract override val source: KtSourceElement?
abstract val typeRef: FirTypeRef
abstract val labelName: Name?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitContextReceiver(this, data)
@Suppress("UNCHECKED_CAST")
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformContextReceiver(this, data) as E
abstract fun replaceTypeRef(newTypeRef: FirTypeRef)
abstract fun <D> transformTypeRef(transformer: FirTransformer<D>, data: D): FirContextReceiver
}
@@ -35,6 +35,7 @@ abstract class FirEnumEntry : FirVariable() {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name abstract override val name: Name
abstract override val initializer: FirExpression? abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression? abstract override val delegate: FirExpression?
@@ -37,6 +37,7 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
@@ -37,6 +37,7 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name abstract override val name: Name
abstract override val initializer: FirExpression? abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression? abstract override val delegate: FirExpression?
@@ -36,6 +36,7 @@ abstract class FirField : FirVariable(), FirControlFlowGraphOwner {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name abstract override val name: Name
abstract override val initializer: FirExpression? abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression? abstract override val delegate: FirExpression?
@@ -38,6 +38,7 @@ sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirContro
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val symbol: FirFunctionSymbol<out FirFunction> abstract override val symbol: FirFunctionSymbol<out FirFunction>
abstract val valueParameters: List<FirValueParameter> abstract val valueParameters: List<FirValueParameter>
@@ -36,6 +36,7 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name abstract override val name: Name
abstract override val initializer: FirExpression? abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression? abstract override val delegate: FirExpression?
@@ -36,6 +36,7 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner,
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
@@ -41,6 +41,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner {
abstract val hasLazyNestedClassifiers: Boolean abstract val hasLazyNestedClassifiers: Boolean
abstract val companionObjectSymbol: FirRegularClassSymbol? abstract val companionObjectSymbol: FirRegularClassSymbol?
abstract override val superTypeRefs: List<FirTypeRef> abstract override val superTypeRefs: List<FirTypeRef>
abstract val contextReceivers: List<FirContextReceiver>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitRegularClass(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitRegularClass(this, data)
@@ -36,6 +36,7 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter> abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock? abstract override val body: FirBlock?
@@ -36,6 +36,7 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name abstract override val name: Name
abstract override val initializer: FirExpression? abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression? abstract override val delegate: FirExpression?
@@ -36,6 +36,7 @@ sealed class FirVariable : FirCallableDeclaration(), FirStatement {
abstract override val deprecation: DeprecationsPerUseSite? abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource? abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType? abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract val name: Name abstract val name: Name
abstract override val symbol: FirVariableSymbol<out FirVariable> abstract override val symbol: FirVariableSymbol<out FirVariable>
abstract val initializer: FirExpression? abstract val initializer: FirExpression?
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder {
abstract override var deprecation: DeprecationsPerUseSite? abstract override var deprecation: DeprecationsPerUseSite?
abstract override var containerSource: DeserializedContainerSource? abstract override var containerSource: DeserializedContainerSource?
abstract override var dispatchReceiverType: ConeSimpleKotlinType? abstract override var dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: MutableList<FirContextReceiver>
abstract override val valueParameters: MutableList<FirValueParameter> abstract override val valueParameters: MutableList<FirValueParameter>
abstract override var body: FirBlock? abstract override var body: FirBlock?
abstract val typeParameters: MutableList<FirTypeParameterRef> abstract val typeParameters: MutableList<FirTypeParameterRef>
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -51,6 +52,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
override var deprecation: DeprecationsPerUseSite? = null override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
var controlFlowGraphReference: FirControlFlowGraphReference? = null var controlFlowGraphReference: FirControlFlowGraphReference? = null
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null override var body: FirBlock? = null
@@ -75,6 +77,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
controlFlowGraphReference, controlFlowGraphReference,
valueParameters, valueParameters,
body, body,
@@ -129,6 +132,7 @@ inline fun buildAnonymousFunctionCopy(original: FirAnonymousFunction, init: FirA
copyBuilder.deprecation = original.deprecation copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.controlFlowGraphReference = original.controlFlowGraphReference copyBuilder.controlFlowGraphReference = original.controlFlowGraphReference
copyBuilder.valueParameters.addAll(original.valueParameters) copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body copyBuilder.body = original.body
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name lateinit var name: Name
var delegate: FirExpression? = null var delegate: FirExpression? = null
var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>() var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -74,6 +76,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder {
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
name, name,
delegate, delegate,
isVar, isVar,
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -49,6 +50,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
override var deprecation: DeprecationsPerUseSite? = null override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override val annotations: MutableList<FirAnnotation> = mutableListOf() override val annotations: MutableList<FirAnnotation> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol override lateinit var symbol: FirConstructorSymbol
@@ -69,6 +71,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
valueParameters, valueParameters,
annotations, annotations,
symbol, symbol,
@@ -112,6 +115,7 @@ inline fun buildConstructorCopy(original: FirConstructor, init: FirConstructorBu
copyBuilder.deprecation = original.deprecation copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.valueParameters.addAll(original.valueParameters) copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.annotations.addAll(original.annotations) copyBuilder.annotations.addAll(original.annotations)
copyBuilder.symbol = original.symbol copyBuilder.symbol = original.symbol
@@ -0,0 +1,44 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.*
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.impl.FirContextReceiverImpl
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
import org.jetbrains.kotlin.name.Name
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
@FirBuilderDsl
class FirContextReceiverBuilder {
var source: KtSourceElement? = null
lateinit var typeRef: FirTypeRef
var labelName: Name? = null
fun build(): FirContextReceiver {
return FirContextReceiverImpl(
source,
typeRef,
labelName,
)
}
}
@OptIn(ExperimentalContracts::class)
inline fun buildContextReceiver(init: FirContextReceiverBuilder.() -> Unit): FirContextReceiver {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
return FirContextReceiverBuilder().apply(init).build()
}
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -48,6 +49,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
var initializer: FirExpression? = null var initializer: FirExpression? = null
var delegate: FirExpression? = null var delegate: FirExpression? = null
var isVar: Boolean = false var isVar: Boolean = false
@@ -74,6 +76,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
initializer, initializer,
delegate, delegate,
isVar, isVar,
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name lateinit var name: Name
var initializer: FirExpression? = null var initializer: FirExpression? = null
var backingField: FirBackingField? = null var backingField: FirBackingField? = null
@@ -66,6 +68,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
name, name,
initializer, initializer,
backingField, backingField,
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
val valueParameters: MutableList<FirValueParameter> = mutableListOf() val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var diagnostic: ConeDiagnostic lateinit var diagnostic: ConeDiagnostic
lateinit var symbol: FirErrorFunctionSymbol lateinit var symbol: FirErrorFunctionSymbol
@@ -62,6 +64,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
valueParameters, valueParameters,
diagnostic, diagnostic,
symbol, symbol,
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name lateinit var name: Name
var backingField: FirBackingField? = null var backingField: FirBackingField? = null
override val annotations: MutableList<FirAnnotation> = mutableListOf() override val annotations: MutableList<FirAnnotation> = mutableListOf()
@@ -63,6 +65,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
name, name,
backingField, backingField,
annotations, annotations,
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -50,6 +51,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
open var deprecation: DeprecationsPerUseSite? = null open var deprecation: DeprecationsPerUseSite? = null
open var containerSource: DeserializedContainerSource? = null open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeSimpleKotlinType? = null open var dispatchReceiverType: ConeSimpleKotlinType? = null
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
open lateinit var name: Name open lateinit var name: Name
open var initializer: FirExpression? = null open var initializer: FirExpression? = null
open var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>() open var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -71,6 +73,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
name, name,
initializer, initializer,
isVar, isVar,
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -42,6 +43,7 @@ interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuil
abstract var deprecation: DeprecationsPerUseSite? abstract var deprecation: DeprecationsPerUseSite?
abstract var containerSource: DeserializedContainerSource? abstract var containerSource: DeserializedContainerSource?
abstract var dispatchReceiverType: ConeSimpleKotlinType? abstract var dispatchReceiverType: ConeSimpleKotlinType?
abstract val contextReceivers: MutableList<FirContextReceiver>
abstract val valueParameters: MutableList<FirValueParameter> abstract val valueParameters: MutableList<FirValueParameter>
abstract var body: FirBlock? abstract var body: FirBlock?
override fun build(): FirFunction override fun build(): FirFunction
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -50,6 +51,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
override var deprecation: DeprecationsPerUseSite? = null override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override val annotations: MutableList<FirAnnotation> = mutableListOf() override val annotations: MutableList<FirAnnotation> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol override lateinit var symbol: FirConstructorSymbol
@@ -71,6 +73,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
valueParameters, valueParameters,
annotations, annotations,
symbol, symbol,
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -51,6 +52,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
override var deprecation: DeprecationsPerUseSite? = null override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null override var body: FirBlock? = null
var contractDescription: FirContractDescription = FirEmptyContractDescription var contractDescription: FirContractDescription = FirEmptyContractDescription
@@ -73,6 +75,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
valueParameters, valueParameters,
body, body,
contractDescription, contractDescription,
@@ -110,6 +113,7 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
copyBuilder.deprecation = original.deprecation copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.valueParameters.addAll(original.valueParameters) copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body copyBuilder.body = original.body
copyBuilder.contractDescription = original.contractDescription copyBuilder.contractDescription = original.contractDescription
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -53,6 +54,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
var deprecation: DeprecationsPerUseSite? = null var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name lateinit var name: Name
var initializer: FirExpression? = null var initializer: FirExpression? = null
var delegate: FirExpression? = null var delegate: FirExpression? = null
@@ -80,6 +82,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
name, name,
initializer, initializer,
delegate, delegate,
@@ -123,6 +126,7 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
copyBuilder.deprecation = original.deprecation copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.name = original.name copyBuilder.name = original.name
copyBuilder.initializer = original.initializer copyBuilder.initializer = original.initializer
copyBuilder.delegate = original.delegate copyBuilder.delegate = original.delegate
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -53,6 +54,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
open lateinit var symbol: FirRegularClassSymbol open lateinit var symbol: FirRegularClassSymbol
open var companionObjectSymbol: FirRegularClassSymbol? = null open var companionObjectSymbol: FirRegularClassSymbol? = null
override val superTypeRefs: MutableList<FirTypeRef> = mutableListOf() override val superTypeRefs: MutableList<FirTypeRef> = mutableListOf()
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override fun build(): FirRegularClass { override fun build(): FirRegularClass {
return FirRegularClassImpl( return FirRegularClassImpl(
@@ -72,6 +74,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
symbol, symbol,
companionObjectSymbol, companionObjectSymbol,
superTypeRefs, superTypeRefs,
contextReceivers,
) )
} }
@@ -107,5 +110,6 @@ inline fun buildRegularClassCopy(original: FirRegularClass, init: FirRegularClas
copyBuilder.symbol = original.symbol copyBuilder.symbol = original.symbol
copyBuilder.companionObjectSymbol = original.companionObjectSymbol copyBuilder.companionObjectSymbol = original.companionObjectSymbol
copyBuilder.superTypeRefs.addAll(original.superTypeRefs) copyBuilder.superTypeRefs.addAll(original.superTypeRefs)
copyBuilder.contextReceivers.addAll(original.contextReceivers)
return copyBuilder.apply(init).build() return copyBuilder.apply(init).build()
} }
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -51,6 +52,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
override var deprecation: DeprecationsPerUseSite? = null override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null override var body: FirBlock? = null
open var contractDescription: FirContractDescription = FirEmptyContractDescription open var contractDescription: FirContractDescription = FirEmptyContractDescription
@@ -72,6 +74,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
valueParameters, valueParameters,
body, body,
contractDescription, contractDescription,
@@ -109,6 +112,7 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF
copyBuilder.deprecation = original.deprecation copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.valueParameters.addAll(original.valueParameters) copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body copyBuilder.body = original.body
copyBuilder.contractDescription = original.contractDescription copyBuilder.contractDescription = original.contractDescription
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
open var deprecation: DeprecationsPerUseSite? = null open var deprecation: DeprecationsPerUseSite? = null
open var containerSource: DeserializedContainerSource? = null open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeSimpleKotlinType? = null open var dispatchReceiverType: ConeSimpleKotlinType? = null
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
open lateinit var name: Name open lateinit var name: Name
open var backingField: FirBackingField? = null open var backingField: FirBackingField? = null
override val annotations: MutableList<FirAnnotation> = mutableListOf() override val annotations: MutableList<FirAnnotation> = mutableListOf()
@@ -67,6 +69,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
deprecation, deprecation,
containerSource, containerSource,
dispatchReceiverType, dispatchReceiverType,
contextReceivers,
name, name,
backingField, backingField,
annotations, annotations,
@@ -103,6 +106,7 @@ inline fun buildValueParameterCopy(original: FirValueParameter, init: FirValuePa
copyBuilder.deprecation = original.deprecation copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.name = original.name copyBuilder.name = original.name
copyBuilder.backingField = original.backingField copyBuilder.backingField = original.backingField
copyBuilder.annotations.addAll(original.annotations) copyBuilder.annotations.addAll(original.annotations)
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirAnonymousFunctionImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override var controlFlowGraphReference: FirControlFlowGraphReference?, override var controlFlowGraphReference: FirControlFlowGraphReference?,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?, override var body: FirBlock?,
@@ -69,6 +71,7 @@ internal class FirAnonymousFunctionImpl(
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data) body?.accept(visitor, data)
@@ -82,6 +85,7 @@ internal class FirAnonymousFunctionImpl(
transformStatus(transformer, data) transformStatus(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data) transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
transformBody(transformer, data) transformBody(transformer, data)
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name, override val name: Name,
override var delegate: FirExpression?, override var delegate: FirExpression?,
override val isVar: Boolean, override val isVar: Boolean,
@@ -64,6 +66,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
delegate?.accept(visitor, data) delegate?.accept(visitor, data)
getter?.accept(visitor, data) getter?.accept(visitor, data)
setter?.accept(visitor, data) setter?.accept(visitor, data)
@@ -139,6 +142,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor(
} }
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirBackingFieldImpl { override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirBackingFieldImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
return this return this
} }
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirConstructorImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override val annotations: MutableList<FirAnnotation>, override val annotations: MutableList<FirAnnotation>,
override val symbol: FirConstructorSymbol, override val symbol: FirConstructorSymbol,
@@ -62,6 +64,7 @@ internal class FirConstructorImpl(
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
@@ -74,6 +77,7 @@ internal class FirConstructorImpl(
transformStatus(transformer, data) transformStatus(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data) transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
@@ -0,0 +1,41 @@
/*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
internal class FirContextReceiverImpl(
override val source: KtSourceElement?,
override var typeRef: FirTypeRef,
override val labelName: Name?,
) : FirContextReceiver() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirContextReceiverImpl {
transformTypeRef(transformer, data)
return this
}
override fun <D> transformTypeRef(transformer: FirTransformer<D>, data: D): FirContextReceiverImpl {
typeRef = typeRef.transform(transformer, data)
return this
}
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
typeRef = newTypeRef
}
}
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirDefaultSetterValueParameter(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override var initializer: FirExpression?, override var initializer: FirExpression?,
override var delegate: FirExpression?, override var delegate: FirExpression?,
override val isVar: Boolean, override val isVar: Boolean,
@@ -71,6 +73,7 @@ internal class FirDefaultSetterValueParameter(
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data) initializer?.accept(visitor, data)
delegate?.accept(visitor, data) delegate?.accept(visitor, data)
getter?.accept(visitor, data) getter?.accept(visitor, data)
@@ -144,6 +147,7 @@ internal class FirDefaultSetterValueParameter(
} }
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter { override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
defaultValue = defaultValue?.transform(transformer, data) defaultValue = defaultValue?.transform(transformer, data)
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirEnumEntryImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name, override val name: Name,
override var initializer: FirExpression?, override var initializer: FirExpression?,
override var backingField: FirBackingField?, override var backingField: FirBackingField?,
@@ -64,6 +66,7 @@ internal class FirEnumEntryImpl(
typeParameters.forEach { it.accept(visitor, data) } typeParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data) initializer?.accept(visitor, data)
backingField?.accept(visitor, data) backingField?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
@@ -126,6 +129,7 @@ internal class FirEnumEntryImpl(
} }
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl { override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
return this return this
} }
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirErrorFunctionImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override val diagnostic: ConeDiagnostic, override val diagnostic: ConeDiagnostic,
override val symbol: FirErrorFunctionSymbol, override val symbol: FirErrorFunctionSymbol,
@@ -62,6 +64,7 @@ internal class FirErrorFunctionImpl(
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
} }
@@ -70,6 +73,7 @@ internal class FirErrorFunctionImpl(
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
transformStatus(transformer, data) transformStatus(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
return this return this
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirErrorPropertyImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name, override val name: Name,
override var backingField: FirBackingField?, override var backingField: FirBackingField?,
override val annotations: MutableList<FirAnnotation>, override val annotations: MutableList<FirAnnotation>,
@@ -67,6 +69,7 @@ internal class FirErrorPropertyImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
backingField?.accept(visitor, data) backingField?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
} }
@@ -124,6 +127,7 @@ internal class FirErrorPropertyImpl(
} }
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl { override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
return this return this
} }
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ class FirFieldImpl @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name, override val name: Name,
override var initializer: FirExpression?, override var initializer: FirExpression?,
override val isVar: Boolean, override val isVar: Boolean,
@@ -67,6 +69,7 @@ class FirFieldImpl @FirImplementationDetail constructor(
typeParameters.forEach { it.accept(visitor, data) } typeParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data) initializer?.accept(visitor, data)
backingField?.accept(visitor, data) backingField?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
@@ -130,6 +133,7 @@ class FirFieldImpl @FirImplementationDetail constructor(
} }
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirFieldImpl { override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirFieldImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
return this return this
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override val annotations: MutableList<FirAnnotation>, override val annotations: MutableList<FirAnnotation>,
override val symbol: FirConstructorSymbol, override val symbol: FirConstructorSymbol,
@@ -63,6 +65,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
@@ -75,6 +78,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
transformStatus(transformer, data) transformStatus(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data) transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?, override var body: FirBlock?,
override var contractDescription: FirContractDescription, override var contractDescription: FirContractDescription,
@@ -65,6 +67,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data) body?.accept(visitor, data)
@@ -76,6 +79,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
transformStatus(transformer, data) transformStatus(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
transformBody(transformer, data) transformBody(transformer, data)
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ internal class FirPropertyImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name, override val name: Name,
override var initializer: FirExpression?, override var initializer: FirExpression?,
override var delegate: FirExpression?, override var delegate: FirExpression?,
@@ -73,6 +75,7 @@ internal class FirPropertyImpl(
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data) initializer?.accept(visitor, data)
delegate?.accept(visitor, data) delegate?.accept(visitor, data)
getter?.accept(visitor, data) getter?.accept(visitor, data)
@@ -148,6 +151,7 @@ internal class FirPropertyImpl(
} }
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl { override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
return this return this
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -47,6 +48,7 @@ internal class FirRegularClassImpl(
override val symbol: FirRegularClassSymbol, override val symbol: FirRegularClassSymbol,
override var companionObjectSymbol: FirRegularClassSymbol?, override var companionObjectSymbol: FirRegularClassSymbol?,
override val superTypeRefs: MutableList<FirTypeRef>, override val superTypeRefs: MutableList<FirTypeRef>,
override val contextReceivers: MutableList<FirContextReceiver>,
) : FirRegularClass() { ) : FirRegularClass() {
override var controlFlowGraphReference: FirControlFlowGraphReference? = null override var controlFlowGraphReference: FirControlFlowGraphReference? = null
override val hasLazyNestedClassifiers: Boolean get() = false override val hasLazyNestedClassifiers: Boolean get() = false
@@ -62,6 +64,7 @@ internal class FirRegularClassImpl(
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
superTypeRefs.forEach { it.accept(visitor, data) } superTypeRefs.forEach { it.accept(visitor, data) }
contextReceivers.forEach { it.accept(visitor, data) }
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirRegularClassImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirRegularClassImpl {
@@ -71,6 +74,7 @@ internal class FirRegularClassImpl(
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformSuperTypeRefs(transformer, data) transformSuperTypeRefs(transformer, data)
contextReceivers.transformInplace(transformer, data)
return this return this
} }
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirSimpleFunctionImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?, override var body: FirBlock?,
override var contractDescription: FirContractDescription, override var contractDescription: FirContractDescription,
@@ -62,6 +64,7 @@ internal class FirSimpleFunctionImpl(
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data) body?.accept(visitor, data)
@@ -74,6 +77,7 @@ internal class FirSimpleFunctionImpl(
transformStatus(transformer, data) transformStatus(transformer, data)
transformReturnTypeRef(transformer, data) transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data) transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data) transformValueParameters(transformer, data)
transformBody(transformer, data) transformBody(transformer, data)
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirBackingField
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirValueParameterImpl(
override var deprecation: DeprecationsPerUseSite?, override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?, override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?, override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name, override val name: Name,
override var backingField: FirBackingField?, override var backingField: FirBackingField?,
override val annotations: MutableList<FirAnnotation>, override val annotations: MutableList<FirAnnotation>,
@@ -70,6 +72,7 @@ internal class FirValueParameterImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
status.accept(visitor, data) status.accept(visitor, data)
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
backingField?.accept(visitor, data) backingField?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data) controlFlowGraphReference?.accept(visitor, data)
@@ -129,6 +132,7 @@ internal class FirValueParameterImpl(
} }
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirValueParameterImpl { override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data) transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
defaultValue = defaultValue?.transform(transformer, data) defaultValue = defaultValue?.transform(transformer, data)
@@ -24,6 +24,7 @@ abstract class FirFunctionTypeRef : FirTypeRefWithNullability() {
abstract val valueParameters: List<FirValueParameter> abstract val valueParameters: List<FirValueParameter>
abstract val returnTypeRef: FirTypeRef abstract val returnTypeRef: FirTypeRef
abstract val isSuspend: Boolean abstract val isSuspend: Boolean
abstract val contextReceiverTypeRefs: List<FirTypeRef>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunctionTypeRef(this, data) override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunctionTypeRef(this, data)
@@ -30,6 +30,7 @@ class FirFunctionTypeRefBuilder : FirAnnotationContainerBuilder {
val valueParameters: MutableList<FirValueParameter> = mutableListOf() val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var returnTypeRef: FirTypeRef lateinit var returnTypeRef: FirTypeRef
var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>() var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
val contextReceiverTypeRefs: MutableList<FirTypeRef> = mutableListOf()
override fun build(): FirFunctionTypeRef { override fun build(): FirFunctionTypeRef {
return FirFunctionTypeRefImpl( return FirFunctionTypeRefImpl(
@@ -40,6 +41,7 @@ class FirFunctionTypeRefBuilder : FirAnnotationContainerBuilder {
valueParameters, valueParameters,
returnTypeRef, returnTypeRef,
isSuspend, isSuspend,
contextReceiverTypeRefs,
) )
} }
@@ -66,5 +68,6 @@ inline fun buildFunctionTypeRefCopy(original: FirFunctionTypeRef, init: FirFunct
copyBuilder.valueParameters.addAll(original.valueParameters) copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.isSuspend = original.isSuspend copyBuilder.isSuspend = original.isSuspend
copyBuilder.contextReceiverTypeRefs.addAll(original.contextReceiverTypeRefs)
return copyBuilder.apply(init).build() return copyBuilder.apply(init).build()
} }
@@ -25,12 +25,14 @@ internal class FirFunctionTypeRefImpl(
override val valueParameters: MutableList<FirValueParameter>, override val valueParameters: MutableList<FirValueParameter>,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
override val isSuspend: Boolean, override val isSuspend: Boolean,
override val contextReceiverTypeRefs: MutableList<FirTypeRef>,
) : FirFunctionTypeRef() { ) : FirFunctionTypeRef() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) } annotations.forEach { it.accept(visitor, data) }
receiverTypeRef?.accept(visitor, data) receiverTypeRef?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) } valueParameters.forEach { it.accept(visitor, data) }
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
contextReceiverTypeRefs.forEach { it.accept(visitor, data) }
} }
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFunctionTypeRefImpl { override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFunctionTypeRefImpl {
@@ -38,6 +40,7 @@ internal class FirFunctionTypeRefImpl(
receiverTypeRef = receiverTypeRef?.transform(transformer, data) receiverTypeRef = receiverTypeRef?.transform(transformer, data)
valueParameters.transformInplace(transformer, data) valueParameters.transformInplace(transformer, data)
returnTypeRef = returnTypeRef.transform(transformer, data) returnTypeRef = returnTypeRef.transform(transformer, data)
contextReceiverTypeRefs.transformInplace(transformer, data)
return this return this
} }
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner
import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner
import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner
import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
@@ -196,6 +197,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformElement(expression, data) return transformElement(expression, data)
} }
open fun transformContextReceiver(contextReceiver: FirContextReceiver, data: D): FirContextReceiver {
return transformElement(contextReceiver, data)
}
open fun transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { open fun transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration {
return transformElement(declaration, data) return transformElement(declaration, data)
} }
@@ -744,6 +749,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformExpression(expression, data) return transformExpression(expression, data)
} }
final override fun visitContextReceiver(contextReceiver: FirContextReceiver, data: D): FirContextReceiver {
return transformContextReceiver(contextReceiver, data)
}
final override fun visitDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { final override fun visitDeclaration(declaration: FirDeclaration, data: D): FirDeclaration {
return transformDeclaration(declaration, data) return transformDeclaration(declaration, data)
} }
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner
import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
@@ -173,6 +174,8 @@ abstract class FirVisitor<out R, in D> {
open fun visitExpression(expression: FirExpression, data: D): R = visitElement(expression, data) open fun visitExpression(expression: FirExpression, data: D): R = visitElement(expression, data)
open fun visitContextReceiver(contextReceiver: FirContextReceiver, data: D): R = visitElement(contextReceiver, data)
open fun visitDeclaration(declaration: FirDeclaration, data: D): R = visitElement(declaration, data) open fun visitDeclaration(declaration: FirDeclaration, data: D): R = visitElement(declaration, data)
open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): R = visitElement(typeParameterRefsOwner, data) open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): R = visitElement(typeParameterRefsOwner, data)
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvedDeclarationStatus
import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner import org.jetbrains.kotlin.fir.declarations.FirControlFlowGraphOwner
import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.declarations.FirContextReceiver
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
@@ -195,6 +196,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(expression) visitElement(expression)
} }
open fun visitContextReceiver(contextReceiver: FirContextReceiver) {
visitElement(contextReceiver)
}
open fun visitDeclaration(declaration: FirDeclaration) { open fun visitDeclaration(declaration: FirDeclaration) {
visitElement(declaration) visitElement(declaration)
} }
@@ -743,6 +748,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitExpression(expression) visitExpression(expression)
} }
final override fun visitContextReceiver(contextReceiver: FirContextReceiver, data: Nothing?) {
visitContextReceiver(contextReceiver)
}
final override fun visitDeclaration(declaration: FirDeclaration, data: Nothing?) { final override fun visitDeclaration(declaration: FirDeclaration, data: Nothing?) {
visitDeclaration(declaration) visitDeclaration(declaration)
} }
@@ -5,9 +5,9 @@
package org.jetbrains.kotlin.fir.declarations.impl package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.descriptors.EffectiveVisibility import org.jetbrains.kotlin.descriptors.EffectiveVisibility
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.name.Name
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
abstract class FirDefaultPropertyAccessor( abstract class FirDefaultPropertyAccessor(
@@ -54,6 +53,7 @@ abstract class FirDefaultPropertyAccessor(
deprecation = null, deprecation = null,
containerSource = null, containerSource = null,
dispatchReceiverType = null, dispatchReceiverType = null,
contextReceivers = mutableListOf(),
valueParameters, valueParameters,
body = null, body = null,
contractDescription = FirEmptyContractDescription, contractDescription = FirEmptyContractDescription,
@@ -5,9 +5,9 @@
package org.jetbrains.kotlin.fir.declarations.impl package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -50,5 +50,6 @@ class FirDefaultPropertyBackingField(
annotations = annotations, annotations = annotations,
typeParameters = mutableListOf(), typeParameters = mutableListOf(),
status = status, status = status,
contextReceivers = mutableListOf(),
) )
@@ -11,8 +11,8 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirDelegateFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.FirTransformer
@@ -82,6 +82,9 @@ class FirSyntheticProperty(
override val bodyResolveState: FirPropertyBodyResolveState override val bodyResolveState: FirPropertyBodyResolveState
get() = FirPropertyBodyResolveState.EVERYTHING_RESOLVED get() = FirPropertyBodyResolveState.EVERYTHING_RESOLVED
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data) returnTypeRef.accept(visitor, data)
status.accept(visitor, data) status.accept(visitor, data)
@@ -75,6 +75,9 @@ class FirSyntheticPropertyAccessor(
bind(this@FirSyntheticPropertyAccessor) bind(this@FirSyntheticPropertyAccessor)
} }
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
// NB: unused // NB: unused
override val propertySymbol: FirPropertySymbol? = null override val propertySymbol: FirPropertySymbol? = null
@@ -26,6 +26,9 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val statement by element(Expression, annotationContainer) val statement by element(Expression, annotationContainer)
val expression by element(Expression, statement) val expression by element(Expression, statement)
val contextReceiver by element(Declaration)
val declaration by sealedElement(Declaration, annotationContainer) val declaration by sealedElement(Declaration, annotationContainer)
val typeParameterRefsOwner by sealedElement(Declaration) val typeParameterRefsOwner by sealedElement(Declaration)
val typeParametersOwner by sealedElement(Declaration, typeParameterRefsOwner) val typeParametersOwner by sealedElement(Declaration, typeParameterRefsOwner)
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.tree.generator
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeImplementationConfigurator import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeImplementationConfigurator
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.Object import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.Object
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.OpenClass import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.OpenClass
import org.jetbrains.kotlin.fir.tree.generator.model.Type
object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() { object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() {
fun configureImplementations() { fun configureImplementations() {
@@ -560,7 +559,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
"FirSafeCallExpressionImpl", "FirSafeCallExpressionImpl",
"FirCheckedSafeCallSubjectImpl", "FirCheckedSafeCallSubjectImpl",
"FirArrayOfCallImpl", "FirArrayOfCallImpl",
"FirIntegerLiteralOperatorCallImpl" "FirIntegerLiteralOperatorCallImpl",
"FirContextReceiverImpl",
) )
configureFieldInAllImplementations( configureFieldInAllImplementations(
field = "typeRef", field = "typeRef",
@@ -70,6 +70,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+controlFlowGraphReferenceField +controlFlowGraphReferenceField
} }
contextReceiver.configure {
+field(typeRef, withReplace = true).withTransform()
+field("labelName", nameType, nullable = true)
}
declaration.configure { declaration.configure {
+symbolWithPackage("fir.symbols", "FirBasedSymbol", "out FirDeclaration") +symbolWithPackage("fir.symbols", "FirBasedSymbol", "out FirDeclaration")
+field("moduleData", firModuleDataType) +field("moduleData", firModuleDataType)
@@ -87,6 +92,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+field("containerSource", type(DeserializedContainerSource::class), nullable = true) +field("containerSource", type(DeserializedContainerSource::class), nullable = true)
+field("dispatchReceiverType", coneSimpleKotlinTypeType, nullable = true) +field("dispatchReceiverType", coneSimpleKotlinTypeType, nullable = true)
+fieldList(contextReceiver)
} }
function.configure { function.configure {
@@ -251,6 +258,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+booleanField("hasLazyNestedClassifiers") +booleanField("hasLazyNestedClassifiers")
+field("companionObjectSymbol", regularClassSymbolType, nullable = true, withReplace = true) +field("companionObjectSymbol", regularClassSymbolType, nullable = true, withReplace = true)
+superTypeRefs(withReplace = true) +superTypeRefs(withReplace = true)
+fieldList(contextReceiver)
} }
anonymousObject.configure { anonymousObject.configure {
@@ -638,6 +646,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+valueParameters +valueParameters
+returnTypeRef +returnTypeRef
+booleanField("isSuspend") +booleanField("isSuspend")
+fieldList("contextReceiverTypeRefs", typeRef)
} }
intersectionTypeRef.configure { intersectionTypeRef.configure {