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 var deprecation: DeprecationsPerUseSite? = null
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
init {
symbol.bind(this)
}
@@ -63,6 +63,8 @@ class FirJavaConstructor @FirImplementationDetail constructor(
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 {
valueParameters.transformInplace(transformer, data)
@@ -67,6 +67,9 @@ class FirJavaField @FirImplementationDetail constructor(
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 {
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
return this
@@ -85,6 +85,9 @@ class FirJavaMethod @FirImplementationDetail constructor(
override val annotations: List<FirAnnotation> by lazy { annotationBuilder() }
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
//not used actually, because get 'enhanced' into regular FirSimpleFunction
override var deprecation: DeprecationsPerUseSite? = null
@@ -223,6 +226,10 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
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)
override fun build(): FirJavaMethod {
return FirJavaMethod(
@@ -97,6 +97,9 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
override val dispatchReceiverType: ConeSimpleKotlinType?
get() = null
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.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 containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
@@ -35,6 +35,7 @@ abstract class FirBackingField : FirVariable(), FirTypeParametersOwner, FirState
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name
abstract override val delegate: FirExpression?
abstract override val isVar: Boolean
@@ -35,6 +35,7 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() {
abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration>
abstract val containerSource: DeserializedContainerSource?
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)
@@ -36,6 +36,7 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner {
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
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 containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
@@ -37,6 +37,7 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder {
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
@@ -37,6 +37,7 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder {
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
@@ -36,6 +36,7 @@ abstract class FirField : FirVariable(), FirControlFlowGraphOwner {
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
@@ -38,6 +38,7 @@ sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirContro
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val symbol: FirFunctionSymbol<out FirFunction>
abstract val valueParameters: List<FirValueParameter>
@@ -36,6 +36,7 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
@@ -36,6 +36,7 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner,
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
@@ -41,6 +41,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner {
abstract val hasLazyNestedClassifiers: Boolean
abstract val companionObjectSymbol: FirRegularClassSymbol?
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)
@@ -36,6 +36,7 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract override val valueParameters: List<FirValueParameter>
abstract override val body: FirBlock?
@@ -36,6 +36,7 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner {
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract override val name: Name
abstract override val initializer: FirExpression?
abstract override val delegate: FirExpression?
@@ -36,6 +36,7 @@ sealed class FirVariable : FirCallableDeclaration(), FirStatement {
abstract override val deprecation: DeprecationsPerUseSite?
abstract override val containerSource: DeserializedContainerSource?
abstract override val dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: List<FirContextReceiver>
abstract val name: Name
abstract override val symbol: FirVariableSymbol<out FirVariable>
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder {
abstract override var deprecation: DeprecationsPerUseSite?
abstract override var containerSource: DeserializedContainerSource?
abstract override var dispatchReceiverType: ConeSimpleKotlinType?
abstract override val contextReceivers: MutableList<FirContextReceiver>
abstract override val valueParameters: MutableList<FirValueParameter>
abstract override var body: FirBlock?
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -51,6 +52,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
var controlFlowGraphReference: FirControlFlowGraphReference? = null
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null
@@ -75,6 +77,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
controlFlowGraphReference,
valueParameters,
body,
@@ -129,6 +132,7 @@ inline fun buildAnonymousFunctionCopy(original: FirAnonymousFunction, init: FirA
copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.controlFlowGraphReference = original.controlFlowGraphReference
copyBuilder.valueParameters.addAll(original.valueParameters)
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name
var delegate: FirExpression? = null
var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -74,6 +76,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder {
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
name,
delegate,
isVar,
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -49,6 +50,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override val annotations: MutableList<FirAnnotation> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol
@@ -69,6 +71,7 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
valueParameters,
annotations,
symbol,
@@ -112,6 +115,7 @@ inline fun buildConstructorCopy(original: FirConstructor, init: FirConstructorBu
copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.annotations.addAll(original.annotations)
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -48,6 +49,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
var initializer: FirExpression? = null
var delegate: FirExpression? = null
var isVar: Boolean = false
@@ -74,6 +76,7 @@ class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
initializer,
delegate,
isVar,
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name
var initializer: FirExpression? = null
var backingField: FirBackingField? = null
@@ -66,6 +68,7 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
name,
initializer,
backingField,
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var diagnostic: ConeDiagnostic
lateinit var symbol: FirErrorFunctionSymbol
@@ -62,6 +64,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
valueParameters,
diagnostic,
symbol,
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name
var backingField: FirBackingField? = null
override val annotations: MutableList<FirAnnotation> = mutableListOf()
@@ -63,6 +65,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
name,
backingField,
annotations,
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -50,6 +51,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
open var deprecation: DeprecationsPerUseSite? = null
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeSimpleKotlinType? = null
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
open lateinit var name: Name
open var initializer: FirExpression? = null
open var isVar: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
@@ -71,6 +73,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
name,
initializer,
isVar,
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -42,6 +43,7 @@ interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuil
abstract var deprecation: DeprecationsPerUseSite?
abstract var containerSource: DeserializedContainerSource?
abstract var dispatchReceiverType: ConeSimpleKotlinType?
abstract val contextReceivers: MutableList<FirContextReceiver>
abstract val valueParameters: MutableList<FirValueParameter>
abstract var body: FirBlock?
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -50,6 +51,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override val annotations: MutableList<FirAnnotation> = mutableListOf()
override lateinit var symbol: FirConstructorSymbol
@@ -71,6 +73,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
valueParameters,
annotations,
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.impl.FirEmptyContractDescription
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -51,6 +52,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null
var contractDescription: FirContractDescription = FirEmptyContractDescription
@@ -73,6 +75,7 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
valueParameters,
body,
contractDescription,
@@ -110,6 +113,7 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -53,6 +54,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
var deprecation: DeprecationsPerUseSite? = null
var containerSource: DeserializedContainerSource? = null
var dispatchReceiverType: ConeSimpleKotlinType? = null
val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
lateinit var name: Name
var initializer: FirExpression? = null
var delegate: FirExpression? = null
@@ -80,6 +82,7 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
name,
initializer,
delegate,
@@ -123,6 +126,7 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.name = original.name
copyBuilder.initializer = original.initializer
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.FirBuilderDsl
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.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -53,6 +54,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
open lateinit var symbol: FirRegularClassSymbol
open var companionObjectSymbol: FirRegularClassSymbol? = null
override val superTypeRefs: MutableList<FirTypeRef> = mutableListOf()
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override fun build(): FirRegularClass {
return FirRegularClassImpl(
@@ -72,6 +74,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu
symbol,
companionObjectSymbol,
superTypeRefs,
contextReceivers,
)
}
@@ -107,5 +110,6 @@ inline fun buildRegularClassCopy(original: FirRegularClass, init: FirRegularClas
copyBuilder.symbol = original.symbol
copyBuilder.companionObjectSymbol = original.companionObjectSymbol
copyBuilder.superTypeRefs.addAll(original.superTypeRefs)
copyBuilder.contextReceivers.addAll(original.contextReceivers)
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.impl.FirEmptyContractDescription
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -51,6 +52,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
override var deprecation: DeprecationsPerUseSite? = null
override var containerSource: DeserializedContainerSource? = null
override var dispatchReceiverType: ConeSimpleKotlinType? = null
override val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
override var body: FirBlock? = null
open var contractDescription: FirContractDescription = FirEmptyContractDescription
@@ -72,6 +74,7 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
valueParameters,
body,
contractDescription,
@@ -109,6 +112,7 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF
copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.body = original.body
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
open var deprecation: DeprecationsPerUseSite? = null
open var containerSource: DeserializedContainerSource? = null
open var dispatchReceiverType: ConeSimpleKotlinType? = null
open val contextReceivers: MutableList<FirContextReceiver> = mutableListOf()
open lateinit var name: Name
open var backingField: FirBackingField? = null
override val annotations: MutableList<FirAnnotation> = mutableListOf()
@@ -67,6 +69,7 @@ open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
deprecation,
containerSource,
dispatchReceiverType,
contextReceivers,
name,
backingField,
annotations,
@@ -103,6 +106,7 @@ inline fun buildValueParameterCopy(original: FirValueParameter, init: FirValuePa
copyBuilder.deprecation = original.deprecation
copyBuilder.containerSource = original.containerSource
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
copyBuilder.contextReceivers.addAll(original.contextReceivers)
copyBuilder.name = original.name
copyBuilder.backingField = original.backingField
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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirAnonymousFunctionImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override var controlFlowGraphReference: FirControlFlowGraphReference?,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
@@ -69,6 +71,7 @@ internal class FirAnonymousFunctionImpl(
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data)
@@ -82,6 +85,7 @@ internal class FirAnonymousFunctionImpl(
transformStatus(transformer, data)
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name,
override var delegate: FirExpression?,
override val isVar: Boolean,
@@ -64,6 +66,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
delegate?.accept(visitor, data)
getter?.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 {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data)
return this
}
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirConstructorImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>,
override val annotations: MutableList<FirAnnotation>,
override val symbol: FirConstructorSymbol,
@@ -62,6 +64,7 @@ internal class FirConstructorImpl(
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
annotations.forEach { it.accept(visitor, data) }
@@ -74,6 +77,7 @@ internal class FirConstructorImpl(
transformStatus(transformer, data)
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirDefaultSetterValueParameter(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override var initializer: FirExpression?,
override var delegate: FirExpression?,
override val isVar: Boolean,
@@ -71,6 +73,7 @@ internal class FirDefaultSetterValueParameter(
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data)
delegate?.accept(visitor, data)
getter?.accept(visitor, data)
@@ -144,6 +147,7 @@ internal class FirDefaultSetterValueParameter(
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirEnumEntryImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name,
override var initializer: FirExpression?,
override var backingField: FirBackingField?,
@@ -64,6 +66,7 @@ internal class FirEnumEntryImpl(
typeParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data)
backingField?.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 {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data)
return this
}
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirErrorFunctionImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>,
override val diagnostic: ConeDiagnostic,
override val symbol: FirErrorFunctionSymbol,
@@ -62,6 +64,7 @@ internal class FirErrorFunctionImpl(
annotations.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
}
@@ -70,6 +73,7 @@ internal class FirErrorFunctionImpl(
transformAnnotations(transformer, data)
transformStatus(transformer, data)
transformReturnTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(transformer, data)
return this
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirErrorPropertyImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name,
override var backingField: FirBackingField?,
override val annotations: MutableList<FirAnnotation>,
@@ -67,6 +69,7 @@ internal class FirErrorPropertyImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
backingField?.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 {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data)
return this
}
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ class FirFieldImpl @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name,
override var initializer: FirExpression?,
override val isVar: Boolean,
@@ -67,6 +69,7 @@ class FirFieldImpl @FirImplementationDetail constructor(
typeParameters.forEach { it.accept(visitor, data) }
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data)
backingField?.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 {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
return this
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>,
override val annotations: MutableList<FirAnnotation>,
override val symbol: FirConstructorSymbol,
@@ -63,6 +65,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
annotations.forEach { it.accept(visitor, data) }
@@ -75,6 +78,7 @@ class FirPrimaryConstructor @FirImplementationDetail constructor(
transformStatus(transformer, data)
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(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.contracts.FirContractDescription
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -45,6 +46,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
override var contractDescription: FirContractDescription,
@@ -65,6 +67,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.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 {
transformStatus(transformer, data)
transformReturnTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -47,6 +48,7 @@ internal class FirPropertyImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name,
override var initializer: FirExpression?,
override var delegate: FirExpression?,
@@ -73,6 +75,7 @@ internal class FirPropertyImpl(
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
initializer?.accept(visitor, data)
delegate?.accept(visitor, data)
getter?.accept(visitor, data)
@@ -148,6 +151,7 @@ internal class FirPropertyImpl(
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
return this
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirModuleData
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.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -47,6 +48,7 @@ internal class FirRegularClassImpl(
override val symbol: FirRegularClassSymbol,
override var companionObjectSymbol: FirRegularClassSymbol?,
override val superTypeRefs: MutableList<FirTypeRef>,
override val contextReceivers: MutableList<FirContextReceiver>,
) : FirRegularClass() {
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
override val hasLazyNestedClassifiers: Boolean get() = false
@@ -62,6 +64,7 @@ internal class FirRegularClassImpl(
annotations.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.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 {
@@ -71,6 +74,7 @@ internal class FirRegularClassImpl(
transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformSuperTypeRefs(transformer, data)
contextReceivers.transformInplace(transformer, data)
return this
}
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.contracts.FirContractDescription
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -44,6 +45,7 @@ internal class FirSimpleFunctionImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val valueParameters: MutableList<FirValueParameter>,
override var body: FirBlock?,
override var contractDescription: FirContractDescription,
@@ -62,6 +64,7 @@ internal class FirSimpleFunctionImpl(
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
body?.accept(visitor, data)
@@ -74,6 +77,7 @@ internal class FirSimpleFunctionImpl(
transformStatus(transformer, data)
transformReturnTypeRef(transformer, data)
transformReceiverTypeRef(transformer, data)
contextReceivers.transformInplace(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformValueParameters(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.declarations.DeprecationsPerUseSite
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.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -43,6 +44,7 @@ internal class FirValueParameterImpl(
override var deprecation: DeprecationsPerUseSite?,
override val containerSource: DeserializedContainerSource?,
override val dispatchReceiverType: ConeSimpleKotlinType?,
override val contextReceivers: MutableList<FirContextReceiver>,
override val name: Name,
override var backingField: FirBackingField?,
override val annotations: MutableList<FirAnnotation>,
@@ -70,6 +72,7 @@ internal class FirValueParameterImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
status.accept(visitor, data)
returnTypeRef.accept(visitor, data)
contextReceivers.forEach { it.accept(visitor, data) }
backingField?.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
@@ -129,6 +132,7 @@ internal class FirValueParameterImpl(
}
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
contextReceivers.transformInplace(transformer, data)
transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
defaultValue = defaultValue?.transform(transformer, data)
@@ -24,6 +24,7 @@ abstract class FirFunctionTypeRef : FirTypeRefWithNullability() {
abstract val valueParameters: List<FirValueParameter>
abstract val returnTypeRef: FirTypeRef
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)
@@ -30,6 +30,7 @@ class FirFunctionTypeRefBuilder : FirAnnotationContainerBuilder {
val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var returnTypeRef: FirTypeRef
var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
val contextReceiverTypeRefs: MutableList<FirTypeRef> = mutableListOf()
override fun build(): FirFunctionTypeRef {
return FirFunctionTypeRefImpl(
@@ -40,6 +41,7 @@ class FirFunctionTypeRefBuilder : FirAnnotationContainerBuilder {
valueParameters,
returnTypeRef,
isSuspend,
contextReceiverTypeRefs,
)
}
@@ -66,5 +68,6 @@ inline fun buildFunctionTypeRefCopy(original: FirFunctionTypeRef, init: FirFunct
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.isSuspend = original.isSuspend
copyBuilder.contextReceiverTypeRefs.addAll(original.contextReceiverTypeRefs)
return copyBuilder.apply(init).build()
}
@@ -25,12 +25,14 @@ internal class FirFunctionTypeRefImpl(
override val valueParameters: MutableList<FirValueParameter>,
override var returnTypeRef: FirTypeRef,
override val isSuspend: Boolean,
override val contextReceiverTypeRefs: MutableList<FirTypeRef>,
) : FirFunctionTypeRef() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
receiverTypeRef?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
returnTypeRef.accept(visitor, data)
contextReceiverTypeRefs.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFunctionTypeRefImpl {
@@ -38,6 +40,7 @@ internal class FirFunctionTypeRefImpl(
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
valueParameters.transformInplace(transformer, data)
returnTypeRef = returnTypeRef.transform(transformer, data)
contextReceiverTypeRefs.transformInplace(transformer, data)
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.expressions.FirStatement
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.FirTypeParameterRefsOwner
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.expressions.FirStatement
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.FirTypeParameterRefsOwner
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.expressions.FirStatement
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.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
@@ -196,6 +197,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformElement(expression, data)
}
open fun transformContextReceiver(contextReceiver: FirContextReceiver, data: D): FirContextReceiver {
return transformElement(contextReceiver, data)
}
open fun transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration {
return transformElement(declaration, data)
}
@@ -744,6 +749,10 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
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 {
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.expressions.FirStatement
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.FirTypeParameterRefsOwner
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 visitContextReceiver(contextReceiver: FirContextReceiver, data: D): R = visitElement(contextReceiver, data)
open fun visitDeclaration(declaration: FirDeclaration, data: D): R = visitElement(declaration, 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.expressions.FirStatement
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.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
@@ -195,6 +196,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(expression)
}
open fun visitContextReceiver(contextReceiver: FirContextReceiver) {
visitElement(contextReceiver)
}
open fun visitDeclaration(declaration: FirDeclaration) {
visitElement(declaration)
}
@@ -743,6 +748,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitExpression(expression)
}
final override fun visitContextReceiver(contextReceiver: FirContextReceiver, data: Nothing?) {
visitContextReceiver(contextReceiver)
}
final override fun visitDeclaration(declaration: FirDeclaration, data: Nothing?) {
visitDeclaration(declaration)
}
@@ -5,9 +5,9 @@
package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.descriptors.EffectiveVisibility
import org.jetbrains.kotlin.descriptors.Modality
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.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.name.Name
@OptIn(FirImplementationDetail::class)
abstract class FirDefaultPropertyAccessor(
@@ -54,6 +53,7 @@ abstract class FirDefaultPropertyAccessor(
deprecation = null,
containerSource = null,
dispatchReceiverType = null,
contextReceivers = mutableListOf(),
valueParameters,
body = null,
contractDescription = FirEmptyContractDescription,
@@ -5,9 +5,9 @@
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.FirModuleData
import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirDeclarationStatus
@@ -50,5 +50,6 @@ class FirDefaultPropertyBackingField(
annotations = annotations,
typeParameters = mutableListOf(),
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.FirExpression
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.FirSyntheticPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeSimpleKotlinType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
@@ -82,6 +82,9 @@ class FirSyntheticProperty(
override val bodyResolveState: FirPropertyBodyResolveState
get() = FirPropertyBodyResolveState.EVERYTHING_RESOLVED
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
returnTypeRef.accept(visitor, data)
status.accept(visitor, data)
@@ -75,6 +75,9 @@ class FirSyntheticPropertyAccessor(
bind(this@FirSyntheticPropertyAccessor)
}
override val contextReceivers: List<FirContextReceiver>
get() = emptyList()
// NB: unused
override val propertySymbol: FirPropertySymbol? = null
@@ -26,6 +26,9 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val statement by element(Expression, annotationContainer)
val expression by element(Expression, statement)
val contextReceiver by element(Declaration)
val declaration by sealedElement(Declaration, annotationContainer)
val typeParameterRefsOwner by sealedElement(Declaration)
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.model.Implementation.Kind.Object
import org.jetbrains.kotlin.fir.tree.generator.model.Implementation.Kind.OpenClass
import org.jetbrains.kotlin.fir.tree.generator.model.Type
object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() {
fun configureImplementations() {
@@ -560,7 +559,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
"FirSafeCallExpressionImpl",
"FirCheckedSafeCallSubjectImpl",
"FirArrayOfCallImpl",
"FirIntegerLiteralOperatorCallImpl"
"FirIntegerLiteralOperatorCallImpl",
"FirContextReceiverImpl",
)
configureFieldInAllImplementations(
field = "typeRef",
@@ -70,6 +70,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+controlFlowGraphReferenceField
}
contextReceiver.configure {
+field(typeRef, withReplace = true).withTransform()
+field("labelName", nameType, nullable = true)
}
declaration.configure {
+symbolWithPackage("fir.symbols", "FirBasedSymbol", "out FirDeclaration")
+field("moduleData", firModuleDataType)
@@ -87,6 +92,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+field("containerSource", type(DeserializedContainerSource::class), nullable = true)
+field("dispatchReceiverType", coneSimpleKotlinTypeType, nullable = true)
+fieldList(contextReceiver)
}
function.configure {
@@ -251,6 +258,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+booleanField("hasLazyNestedClassifiers")
+field("companionObjectSymbol", regularClassSymbolType, nullable = true, withReplace = true)
+superTypeRefs(withReplace = true)
+fieldList(contextReceiver)
}
anonymousObject.configure {
@@ -638,6 +646,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+valueParameters
+returnTypeRef
+booleanField("isSuspend")
+fieldList("contextReceiverTypeRefs", typeRef)
}
intersectionTypeRef.configure {