diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt index 36af9418021..1ca004e0f8d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt @@ -126,8 +126,11 @@ open class FirTypeResolveTransformer( .transformAnnotations(this, data) if (property.isFromVararg == true) { property.transformTypeToArrayType() - property.getter?.transformReturnTypeRef(StoreType, property.returnTypeRef) - property.setter?.valueParameters?.map { it.transformReturnTypeRef(StoreType, property.returnTypeRef) } + setAccessorTypesByPropertyType(property) + } + + if (property.returnTypeRef is FirResolvedTypeRef && property.delegate != null) { + setAccessorTypesByPropertyType(property) } unboundCyclesInTypeParametersSupertypes(property) @@ -136,6 +139,11 @@ open class FirTypeResolveTransformer( } } + private fun setAccessorTypesByPropertyType(property: FirProperty) { + property.getter?.transformReturnTypeRef(StoreType, property.returnTypeRef) + property.setter?.valueParameters?.map { it.transformReturnTypeRef(StoreType, property.returnTypeRef) } + } + override fun transformField(field: FirField, data: Any?): FirField { return withScopeCleanup { field.transformReturnTypeRef(this, data).transformAnnotations(this, data)