From a89680fb340f1761d92f250c4af5976300449ce2 Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Wed, 16 Feb 2022 11:40:51 +0300 Subject: [PATCH] FIR: Prepare tree for context receivers --- .../fir/java/declarations/FirJavaClass.kt | 3 ++ .../java/declarations/FirJavaConstructor.kt | 2 + .../fir/java/declarations/FirJavaField.kt | 3 ++ .../fir/java/declarations/FirJavaMethod.kt | 7 +++ .../declarations/FirJavaValueParameter.kt | 3 ++ .../fir/declarations/FirAnonymousFunction.kt | 1 + .../fir/declarations/FirBackingField.kt | 1 + .../declarations/FirCallableDeclaration.kt | 1 + .../kotlin/fir/declarations/FirConstructor.kt | 1 + .../fir/declarations/FirContextReceiver.kt | 34 ++++++++++++++ .../kotlin/fir/declarations/FirEnumEntry.kt | 1 + .../fir/declarations/FirErrorFunction.kt | 1 + .../fir/declarations/FirErrorProperty.kt | 1 + .../kotlin/fir/declarations/FirField.kt | 1 + .../kotlin/fir/declarations/FirFunction.kt | 1 + .../kotlin/fir/declarations/FirProperty.kt | 1 + .../fir/declarations/FirPropertyAccessor.kt | 1 + .../fir/declarations/FirRegularClass.kt | 1 + .../fir/declarations/FirSimpleFunction.kt | 1 + .../fir/declarations/FirValueParameter.kt | 1 + .../kotlin/fir/declarations/FirVariable.kt | 1 + .../builder/FirAbstractConstructorBuilder.kt | 2 + .../builder/FirAnonymousFunctionBuilder.kt | 4 ++ .../builder/FirBackingFieldBuilder.kt | 3 ++ .../builder/FirConstructorBuilder.kt | 4 ++ .../builder/FirContextReceiverBuilder.kt | 44 +++++++++++++++++++ .../FirDefaultSetterValueParameterBuilder.kt | 3 ++ .../builder/FirEnumEntryBuilder.kt | 3 ++ .../builder/FirErrorFunctionBuilder.kt | 3 ++ .../builder/FirErrorPropertyBuilder.kt | 3 ++ .../declarations/builder/FirFieldBuilder.kt | 3 ++ .../builder/FirFunctionBuilder.kt | 2 + .../builder/FirPrimaryConstructorBuilder.kt | 3 ++ .../builder/FirPropertyAccessorBuilder.kt | 4 ++ .../builder/FirPropertyBuilder.kt | 4 ++ .../builder/FirRegularClassBuilder.kt | 4 ++ .../builder/FirSimpleFunctionBuilder.kt | 4 ++ .../builder/FirValueParameterBuilder.kt | 4 ++ .../impl/FirAnonymousFunctionImpl.kt | 4 ++ .../declarations/impl/FirBackingFieldImpl.kt | 4 ++ .../declarations/impl/FirConstructorImpl.kt | 4 ++ .../impl/FirContextReceiverImpl.kt | 41 +++++++++++++++++ .../impl/FirDefaultSetterValueParameter.kt | 4 ++ .../fir/declarations/impl/FirEnumEntryImpl.kt | 4 ++ .../declarations/impl/FirErrorFunctionImpl.kt | 4 ++ .../declarations/impl/FirErrorPropertyImpl.kt | 4 ++ .../fir/declarations/impl/FirFieldImpl.kt | 4 ++ .../impl/FirPrimaryConstructor.kt | 4 ++ .../impl/FirPropertyAccessorImpl.kt | 4 ++ .../fir/declarations/impl/FirPropertyImpl.kt | 4 ++ .../declarations/impl/FirRegularClassImpl.kt | 4 ++ .../impl/FirSimpleFunctionImpl.kt | 4 ++ .../impl/FirValueParameterImpl.kt | 4 ++ .../kotlin/fir/types/FirFunctionTypeRef.kt | 1 + .../builder/FirFunctionTypeRefBuilder.kt | 3 ++ .../fir/types/impl/FirFunctionTypeRefImpl.kt | 3 ++ .../kotlin/fir/visitors/FirDefaultVisitor.kt | 1 + .../fir/visitors/FirDefaultVisitorVoid.kt | 1 + .../kotlin/fir/visitors/FirTransformer.kt | 9 ++++ .../kotlin/fir/visitors/FirVisitor.kt | 3 ++ .../kotlin/fir/visitors/FirVisitorVoid.kt | 9 ++++ .../impl/FirDefaultPropertyAccessor.kt | 4 +- .../impl/FirDefaultPropertyBackingField.kt | 3 +- .../synthetic/FirSyntheticProperty.kt | 5 ++- .../synthetic/FirSyntheticPropertyAccessor.kt | 3 ++ .../fir/tree/generator/FirTreeBuilder.kt | 3 ++ .../generator/ImplementationConfigurator.kt | 4 +- .../fir/tree/generator/NodeConfigurator.kt | 10 +++++ 68 files changed, 317 insertions(+), 6 deletions(-) create mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContextReceiver.kt create mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirContextReceiverBuilder.kt create mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirContextReceiverImpl.kt diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt index 1442c864d3c..62d27bff828 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt @@ -52,6 +52,9 @@ class FirJavaClass @FirImplementationDetail internal constructor( override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null override var deprecation: DeprecationsPerUseSite? = null + override val contextReceivers: List + get() = emptyList() + init { symbol.bind(this) } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt index ae2c8d528c5..9de659f0078 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -63,6 +63,8 @@ class FirJavaConstructor @FirImplementationDetail constructor( override val annotations: List by lazy { annotationBuilder() } + override val contextReceivers: List + get() = emptyList() override fun transformValueParameters(transformer: FirTransformer, data: D): FirJavaConstructor { valueParameters.transformInplace(transformer, data) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index d79aeedd94a..2a55b442001 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -67,6 +67,9 @@ class FirJavaField @FirImplementationDetail constructor( annotations.getDeprecationInfosFromAnnotations(moduleData.session.languageVersionSettings.apiVersion, fromJava = true) } + override val contextReceivers: List + get() = emptyList() + override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirField { returnTypeRef = returnTypeRef.transformSingle(transformer, data) return this diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt index dbe5046f593..ba58d181cb9 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt @@ -85,6 +85,9 @@ class FirJavaMethod @FirImplementationDetail constructor( override val annotations: List by lazy { annotationBuilder() } + override val contextReceivers: List + 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 + get() = throw IllegalStateException() + @OptIn(FirImplementationDetail::class) override fun build(): FirJavaMethod { return FirJavaMethod( diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt index b1523cbd69d..508792b7d66 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaValueParameter.kt @@ -97,6 +97,9 @@ class FirJavaValueParameter @FirImplementationDetail constructor( override val dispatchReceiverType: ConeSimpleKotlinType? get() = null + override val contextReceivers: List + get() = emptyList() + override fun acceptChildren(visitor: FirVisitor, data: D) { returnTypeRef.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt index 0c4f7bdbbd9..60cbce7dd63 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt @@ -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 abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val body: FirBlock? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt index 526c93e9f58..016fd206a8d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirBackingField.kt @@ -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 abstract override val name: Name abstract override val delegate: FirExpression? abstract override val isVar: Boolean diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt index 6897c4b0054..bae178fd3c9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt @@ -35,6 +35,7 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() { abstract override val symbol: FirCallableSymbol abstract val containerSource: DeserializedContainerSource? abstract val dispatchReceiverType: ConeSimpleKotlinType? + abstract val contextReceivers: List override fun accept(visitor: FirVisitor, data: D): R = visitor.visitCallableDeclaration(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt index 64eadad6bed..c1a03b40f4a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt @@ -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 abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val annotations: List diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContextReceiver.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContextReceiver.kt new file mode 100644 index 00000000000..abc64103094 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContextReceiver.kt @@ -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 accept(visitor: FirVisitor, data: D): R = visitor.visitContextReceiver(this, data) + + @Suppress("UNCHECKED_CAST") + override fun transform(transformer: FirTransformer, data: D): E = + transformer.transformContextReceiver(this, data) as E + + abstract fun replaceTypeRef(newTypeRef: FirTypeRef) + + abstract fun transformTypeRef(transformer: FirTransformer, data: D): FirContextReceiver +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt index a6d3ec65bf9..590bca4e369 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt @@ -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 abstract override val name: Name abstract override val initializer: FirExpression? abstract override val delegate: FirExpression? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt index 01d4d02d8a6..325871ef659 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt @@ -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 abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val body: FirBlock? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt index 5761bc507bc..9c433f5f71b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt @@ -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 abstract override val name: Name abstract override val initializer: FirExpression? abstract override val delegate: FirExpression? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt index 6752c0f3ee9..cb1d45931ac 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt @@ -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 abstract override val name: Name abstract override val initializer: FirExpression? abstract override val delegate: FirExpression? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt index 09cc896fc0f..ad6a7ab4b96 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt @@ -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 abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val symbol: FirFunctionSymbol abstract val valueParameters: List diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt index ce961409857..69cfaa7a372 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt @@ -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 abstract override val name: Name abstract override val initializer: FirExpression? abstract override val delegate: FirExpression? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt index aaf01d08e66..7961b1aef4b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt @@ -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 abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val body: FirBlock? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt index d91f50502a4..71c5945c29c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt @@ -41,6 +41,7 @@ abstract class FirRegularClass : FirClass(), FirControlFlowGraphOwner { abstract val hasLazyNestedClassifiers: Boolean abstract val companionObjectSymbol: FirRegularClassSymbol? abstract override val superTypeRefs: List + abstract val contextReceivers: List override fun accept(visitor: FirVisitor, data: D): R = visitor.visitRegularClass(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt index 43678a665aa..1ef681ee84d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt @@ -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 abstract override val controlFlowGraphReference: FirControlFlowGraphReference? abstract override val valueParameters: List abstract override val body: FirBlock? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt index 88ba8317273..820986382d3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt @@ -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 abstract override val name: Name abstract override val initializer: FirExpression? abstract override val delegate: FirExpression? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt index 5cc86ea4105..cab8c118afb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt @@ -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 abstract val name: Name abstract override val symbol: FirVariableSymbol abstract val initializer: FirExpression? diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt index 4496efd1609..2c660fef6be 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt @@ -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 abstract override val valueParameters: MutableList abstract override var body: FirBlock? abstract val typeParameters: MutableList diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt index 99f84c078a4..94fa65f0e25 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt @@ -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 = mutableListOf() var controlFlowGraphReference: FirControlFlowGraphReference? = null override val valueParameters: MutableList = 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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt index 9cd191b33ad..cee4def45d6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirBackingFieldBuilder.kt @@ -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 = mutableListOf() lateinit var name: Name var delegate: FirExpression? = null var isVar: Boolean by kotlin.properties.Delegates.notNull() @@ -74,6 +76,7 @@ class FirBackingFieldBuilder : FirAnnotationContainerBuilder { deprecation, containerSource, dispatchReceiverType, + contextReceivers, name, delegate, isVar, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt index 73ffd22f81c..42675d8876e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt @@ -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 = mutableListOf() override val valueParameters: MutableList = mutableListOf() override val annotations: MutableList = 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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirContextReceiverBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirContextReceiverBuilder.kt new file mode 100644 index 00000000000..249cf2f8142 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirContextReceiverBuilder.kt @@ -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() +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt index 08b7297aab1..dbe8e7a1487 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt @@ -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 = 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, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt index 60498648483..cfa9546e38c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt @@ -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 = 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, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt index 5ad8a1f116b..3608daa4f78 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt @@ -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 = mutableListOf() val valueParameters: MutableList = mutableListOf() lateinit var diagnostic: ConeDiagnostic lateinit var symbol: FirErrorFunctionSymbol @@ -62,6 +64,7 @@ class FirErrorFunctionBuilder : FirAnnotationContainerBuilder { deprecation, containerSource, dispatchReceiverType, + contextReceivers, valueParameters, diagnostic, symbol, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt index e68e2c3dfb7..e74fc60b32a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt @@ -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 = mutableListOf() lateinit var name: Name var backingField: FirBackingField? = null override val annotations: MutableList = mutableListOf() @@ -63,6 +65,7 @@ class FirErrorPropertyBuilder : FirAnnotationContainerBuilder { deprecation, containerSource, dispatchReceiverType, + contextReceivers, name, backingField, annotations, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt index 6053974be91..20526541748 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt @@ -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 = mutableListOf() open lateinit var name: Name open var initializer: FirExpression? = null open var isVar: Boolean by kotlin.properties.Delegates.notNull() @@ -71,6 +73,7 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde deprecation, containerSource, dispatchReceiverType, + contextReceivers, name, initializer, isVar, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt index 2b429419c9a..580378ec6b6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt @@ -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 abstract val valueParameters: MutableList abstract var body: FirBlock? override fun build(): FirFunction diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt index 55f03afb290..e9e69cfff42 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt @@ -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 = mutableListOf() override val valueParameters: MutableList = mutableListOf() override val annotations: MutableList = mutableListOf() override lateinit var symbol: FirConstructorSymbol @@ -71,6 +73,7 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio deprecation, containerSource, dispatchReceiverType, + contextReceivers, valueParameters, annotations, symbol, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt index 2aea2599ced..d0437168d45 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt @@ -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 = mutableListOf() override val valueParameters: MutableList = 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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt index bfa2a179c88..4967afe97ba 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt @@ -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 = 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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt index 16cd412d75e..f91a4932d57 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt @@ -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 = mutableListOf() + open val contextReceivers: MutableList = 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() } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt index e6f3ab267cb..93715c4e876 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt @@ -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 = mutableListOf() override val valueParameters: MutableList = 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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt index d8d1e3f4519..273505d1481 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt @@ -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 = mutableListOf() open lateinit var name: Name open var backingField: FirBackingField? = null override val annotations: MutableList = 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) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt index 35cf9e6cc63..3e337918bcf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt @@ -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, override var controlFlowGraphReference: FirControlFlowGraphReference?, override val valueParameters: MutableList, 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) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt index 56fac29c9e9..94d02058647 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirBackingFieldImpl.kt @@ -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, override val name: Name, override var delegate: FirExpression?, override val isVar: Boolean, @@ -64,6 +66,7 @@ open class FirBackingFieldImpl @FirImplementationDetail constructor( override fun acceptChildren(visitor: FirVisitor, 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 transformOtherChildren(transformer: FirTransformer, data: D): FirBackingFieldImpl { + contextReceivers.transformInplace(transformer, data) transformAnnotations(transformer, data) return this } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt index 27b6fbd2d93..af0d361de6d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt @@ -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, override val valueParameters: MutableList, override val annotations: MutableList, 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) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirContextReceiverImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirContextReceiverImpl.kt new file mode 100644 index 00000000000..b3dbbfd8d25 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirContextReceiverImpl.kt @@ -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 acceptChildren(visitor: FirVisitor, data: D) { + typeRef.accept(visitor, data) + } + + override fun transformChildren(transformer: FirTransformer, data: D): FirContextReceiverImpl { + transformTypeRef(transformer, data) + return this + } + + override fun transformTypeRef(transformer: FirTransformer, data: D): FirContextReceiverImpl { + typeRef = typeRef.transform(transformer, data) + return this + } + + override fun replaceTypeRef(newTypeRef: FirTypeRef) { + typeRef = newTypeRef + } +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt index 4a4f280919c..52a6cf908ab 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt @@ -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, 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 transformOtherChildren(transformer: FirTransformer, data: D): FirDefaultSetterValueParameter { + contextReceivers.transformInplace(transformer, data) transformAnnotations(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) defaultValue = defaultValue?.transform(transformer, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt index 47c742fd5cc..14dd878963d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt @@ -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, 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 transformOtherChildren(transformer: FirTransformer, data: D): FirEnumEntryImpl { + contextReceivers.transformInplace(transformer, data) transformAnnotations(transformer, data) return this } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt index 44b6bf7c0f5..755cef0f4bb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt @@ -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, override val valueParameters: MutableList, 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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt index c6f540c3198..f0142f80fbc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt @@ -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, override val name: Name, override var backingField: FirBackingField?, override val annotations: MutableList, @@ -67,6 +69,7 @@ internal class FirErrorPropertyImpl( override fun acceptChildren(visitor: FirVisitor, 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 transformOtherChildren(transformer: FirTransformer, data: D): FirErrorPropertyImpl { + contextReceivers.transformInplace(transformer, data) transformAnnotations(transformer, data) return this } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt index 5d99e9565ee..14b6432aaef 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt @@ -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, 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 transformOtherChildren(transformer: FirTransformer, data: D): FirFieldImpl { + contextReceivers.transformInplace(transformer, data) transformAnnotations(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) return this diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt index a91cb186d43..c51f31dbd36 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt @@ -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, override val valueParameters: MutableList, override val annotations: MutableList, 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) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt index b555d0b085e..30a8ae058b2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt @@ -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, override val valueParameters: MutableList, override var body: FirBlock?, override var contractDescription: FirContractDescription, @@ -65,6 +67,7 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor( override fun acceptChildren(visitor: FirVisitor, 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 transformChildren(transformer: FirTransformer, data: D): FirPropertyAccessorImpl { transformStatus(transformer, data) transformReturnTypeRef(transformer, data) + contextReceivers.transformInplace(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) transformValueParameters(transformer, data) transformBody(transformer, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt index 3621f1a4b29..8c7e0ae7614 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt @@ -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, 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 transformOtherChildren(transformer: FirTransformer, data: D): FirPropertyImpl { + contextReceivers.transformInplace(transformer, data) transformAnnotations(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) return this diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt index 1462eb2ee99..dc338b95a8d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt @@ -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, + override val contextReceivers: MutableList, ) : 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 transformChildren(transformer: FirTransformer, 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 } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt index 31969f508db..64589ca8590 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt @@ -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, override val valueParameters: MutableList, 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) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt index 86730ea57e9..202909f6258 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt @@ -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, override val name: Name, override var backingField: FirBackingField?, override val annotations: MutableList, @@ -70,6 +72,7 @@ internal class FirValueParameterImpl( override fun acceptChildren(visitor: FirVisitor, 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 transformOtherChildren(transformer: FirTransformer, data: D): FirValueParameterImpl { + contextReceivers.transformInplace(transformer, data) transformAnnotations(transformer, data) controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data) defaultValue = defaultValue?.transform(transformer, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt index 6233085883d..bdba12bada1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt @@ -24,6 +24,7 @@ abstract class FirFunctionTypeRef : FirTypeRefWithNullability() { abstract val valueParameters: List abstract val returnTypeRef: FirTypeRef abstract val isSuspend: Boolean + abstract val contextReceiverTypeRefs: List override fun accept(visitor: FirVisitor, data: D): R = visitor.visitFunctionTypeRef(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt index eb5c45e86bf..60a9195239f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt @@ -30,6 +30,7 @@ class FirFunctionTypeRefBuilder : FirAnnotationContainerBuilder { val valueParameters: MutableList = mutableListOf() lateinit var returnTypeRef: FirTypeRef var isSuspend: Boolean by kotlin.properties.Delegates.notNull() + val contextReceiverTypeRefs: MutableList = 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() } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt index d85ce345100..258206c5c20 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt @@ -25,12 +25,14 @@ internal class FirFunctionTypeRefImpl( override val valueParameters: MutableList, override var returnTypeRef: FirTypeRef, override val isSuspend: Boolean, + override val contextReceiverTypeRefs: MutableList, ) : FirFunctionTypeRef() { override fun acceptChildren(visitor: FirVisitor, 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 transformChildren(transformer: FirTransformer, 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 } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt index b8abc2c1d64..9f304770b70 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt @@ -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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt index 7ae48c4b51c..3d73b3a8ef6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt @@ -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 diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index 3f89653b59a..3e1b841fa45 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt @@ -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 : FirVisitor() { 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 : FirVisitor() { 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) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt index 589799fd088..90658de5a42 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt @@ -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 { 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) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt index 1c92d620875..779be1397fb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt @@ -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() { visitElement(expression) } + open fun visitContextReceiver(contextReceiver: FirContextReceiver) { + visitElement(contextReceiver) + } + open fun visitDeclaration(declaration: FirDeclaration) { visitElement(declaration) } @@ -743,6 +748,10 @@ abstract class FirVisitorVoid : FirVisitor() { visitExpression(expression) } + final override fun visitContextReceiver(contextReceiver: FirContextReceiver, data: Nothing?) { + visitContextReceiver(contextReceiver) + } + final override fun visitDeclaration(declaration: FirDeclaration, data: Nothing?) { visitDeclaration(declaration) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt index 8615398df2f..80e958fb296 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyAccessor.kt @@ -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, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt index 997222d854d..9c4f7cb8456 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultPropertyBackingField.kt @@ -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(), ) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt index 1e06bc3252c..b32dd347954 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticProperty.kt @@ -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 + get() = emptyList() + override fun acceptChildren(visitor: FirVisitor, data: D) { returnTypeRef.accept(visitor, data) status.accept(visitor, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt index 9f618728e4d..49d677d3a3e 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/synthetic/FirSyntheticPropertyAccessor.kt @@ -75,6 +75,9 @@ class FirSyntheticPropertyAccessor( bind(this@FirSyntheticPropertyAccessor) } + override val contextReceivers: List + get() = emptyList() + // NB: unused override val propertySymbol: FirPropertySymbol? = null diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt index 06083b59b09..e382cc3282c 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt @@ -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) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt index 722a02ef84e..10c12bf1029 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt @@ -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", diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 4c822a9d5ab..ffd94ce0368 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -70,6 +70,11 @@ object NodeConfigurator : AbstractFieldConfigurator(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(FirTreeBuild +field("containerSource", type(DeserializedContainerSource::class), nullable = true) +field("dispatchReceiverType", coneSimpleKotlinTypeType, nullable = true) + + +fieldList(contextReceiver) } function.configure { @@ -251,6 +258,7 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild +booleanField("hasLazyNestedClassifiers") +field("companionObjectSymbol", regularClassSymbolType, nullable = true, withReplace = true) +superTypeRefs(withReplace = true) + +fieldList(contextReceiver) } anonymousObject.configure { @@ -638,6 +646,8 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild +valueParameters +returnTypeRef +booleanField("isSuspend") + + +fieldList("contextReceiverTypeRefs", typeRef) } intersectionTypeRef.configure {