[LL FIR] fix lazy resolve of accessors generated by delegation

Before the change, such accessors would have implicit types event if the corresponding property had a resolved one
This commit is contained in:
Ilya Kirillov
2022-08-09 10:32:16 +02:00
parent e12a800b2d
commit 97853016d5
@@ -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)