[FIR] During resolve, set correctly property reference type in delegate

This commit is contained in:
Mikhail Glukhikh
2020-03-31 17:11:49 +03:00
parent 58e00400f1
commit 036b6c63f6
42 changed files with 181 additions and 73 deletions
@@ -87,3 +87,45 @@ class FirImplicitKPropertyTypeRef(
source: FirSourceElement?,
typeArgument: ConeTypeProjection
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.KProperty, arrayOf(typeArgument))
class FirImplicitKProperty0TypeRef(
source: FirSourceElement?,
propertyTypeArgument: ConeTypeProjection
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.KProperty0, arrayOf(propertyTypeArgument))
class FirImplicitKMutableProperty0TypeRef(
source: FirSourceElement?,
propertyTypeArgument: ConeTypeProjection
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.KMutableProperty0, arrayOf(propertyTypeArgument))
class FirImplicitKProperty1TypeRef(
source: FirSourceElement?,
receiverTypeArgument: ConeTypeProjection,
propertyTypeArgument: ConeTypeProjection
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.KProperty1, arrayOf(receiverTypeArgument, propertyTypeArgument))
class FirImplicitKMutableProperty1TypeRef(
source: FirSourceElement?,
receiverTypeArgument: ConeTypeProjection,
propertyTypeArgument: ConeTypeProjection
) : FirImplicitBuiltinTypeRef(source, StandardClassIds.KMutableProperty1, arrayOf(receiverTypeArgument, propertyTypeArgument))
class FirImplicitKProperty2TypeRef(
source: FirSourceElement?,
dispatchReceiverTypeArgument: ConeTypeProjection,
extensionReceiverTypeArgument: ConeTypeProjection,
propertyTypeArgument: ConeTypeProjection
) : FirImplicitBuiltinTypeRef(
source, StandardClassIds.KProperty2,
arrayOf(dispatchReceiverTypeArgument, extensionReceiverTypeArgument, propertyTypeArgument)
)
class FirImplicitKMutableProperty2TypeRef(
source: FirSourceElement?,
dispatchReceiverTypeArgument: ConeTypeProjection,
extensionReceiverTypeArgument: ConeTypeProjection,
propertyTypeArgument: ConeTypeProjection
) : FirImplicitBuiltinTypeRef(
source, StandardClassIds.KMutableProperty2,
arrayOf(dispatchReceiverTypeArgument, extensionReceiverTypeArgument, propertyTypeArgument)
)