K2: expand types during smartcasting to prevent redundant intersections

#KT-53184 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-07-18 15:17:37 +02:00
committed by Space
parent bc396b9765
commit 5445f4043a
16 changed files with 344 additions and 128 deletions
@@ -361,10 +361,10 @@ private inline fun <T : FirExpression> BodyResolveComponents.transformExpression
SmartcastStability.STABLE_VALUE
}
val originalType = expression.resultType.coneType
val originalType = expression.resultType.coneType.fullyExpandedType(session)
val allTypes = typesFromSmartCast.also {
if (originalType !is ConeStubType) {
it += originalType
it += originalType.fullyExpandedType(session)
}
}
if (allTypes.all { it is ConeDynamicType }) return null