From 0e98480be36be0cfbb09954a0e7798a49bc97d1d Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 14 Apr 2021 16:58:24 +0200 Subject: [PATCH] FIR: update resolve phase for declaration when visiting with FirContractResolveTransformer --- .../contracts/FirContractResolveTransformer.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt index 98b82e0a390..5a212b78095 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt @@ -79,10 +79,12 @@ open class FirContractResolveTransformer( property.getter?.hasContractToResolve != true && property.setter?.hasContractToResolve != true || property.isLocal || property.delegate != null ) { + property.updatePhaseForAccessors() return property } if (property is FirSyntheticProperty) { transformSimpleFunction(property.getter.delegate, data) + property.updatePhaseForAccessors() return property } context.withProperty(property) { @@ -92,6 +94,11 @@ open class FirContractResolveTransformer( return property } + private fun FirProperty.updatePhaseForAccessors() { + getter?.updatePhase() + setter?.updatePhase() + } + override fun transformField(field: FirField, data: ResolutionMode): FirDeclaration { field.updatePhase() return field @@ -236,6 +243,7 @@ open class FirContractResolveTransformer( anonymousInitializer: FirAnonymousInitializer, data: ResolutionMode ): FirDeclaration { + anonymousInitializer.updatePhase() return anonymousInitializer } @@ -245,6 +253,7 @@ open class FirContractResolveTransformer( } override fun transformEnumEntry(enumEntry: FirEnumEntry, data: ResolutionMode): FirDeclaration { + enumEntry.updatePhase() return enumEntry }