[FIR] KT-56877: Allow referencing implicit receivers in class contracts

This commit is contained in:
Nikolay Lunyak
2023-03-07 13:27:44 +02:00
committed by Space Team
parent 409249267c
commit c7a71fec17
10 changed files with 20 additions and 67 deletions
@@ -382,15 +382,9 @@ class BodyResolveContext(
fun <T> withRegularClass(
regularClass: FirRegularClass,
holder: SessionHolder,
forContracts: Boolean = false,
f: () -> T
): T {
storeClassIfNotNested(regularClass, holder.session)
if (forContracts) {
return withTypeParametersOf(regularClass) {
withContainerClass(regularClass, f)
}
}
return withTowerDataModeCleanup {
if (!regularClass.isInner && containerIfAny is FirRegularClass) {
towerDataMode = if (regularClass.isCompanion) {
@@ -254,7 +254,7 @@ abstract class FirAbstractContractResolveTransformerDispatcher(
}
override fun transformRegularClass(regularClass: FirRegularClass, data: ResolutionMode): FirStatement {
context.withRegularClass(regularClass, components, forContracts = true) {
context.withRegularClass(regularClass, components) {
transformDeclarationContent(regularClass, data)
}
return regularClass