[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:
+10
-2
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user