[FIR] fix memory leak via static ConeClassLikeTypeImpl

ConeClassLikeLookupTagImpl.boundSymbol contains weak reference to FirSession
This commit is contained in:
Ilya Kirillov
2022-10-06 10:03:21 +02:00
parent 62ba1277bb
commit 8eb0ca705d
@@ -143,15 +143,16 @@ private object Checks {
}
}
private val kPropertyType = ConeClassLikeTypeImpl(
ConeClassLikeLookupTagImpl(StandardClassIds.KProperty),
arrayOf(ConeStarProjection),
isNullable = false
)
val isKProperty = full("second parameter must be of type KProperty<*> or its supertype") { ctx, function ->
val paramType = function.valueParameters[1].returnTypeRef.coneType
paramType.isSupertypeOf(ctx.session.typeContext, kPropertyType)
paramType.isSupertypeOf(
ctx.session.typeContext,
ConeClassLikeTypeImpl(
ConeClassLikeLookupTagImpl(StandardClassIds.KProperty),
arrayOf(ConeStarProjection),
isNullable = false
)
)
}
}