[FIR] Set EnhancedNullability attribute for former flexible types

In some cases we transform flexible type into non-flexible during
  enhancement, but don't add `@EnhancedNullability` attribute to them,
  which breaks consistency with K1 on IR level

This commit fixes it

^KT-65302
This commit is contained in:
Dmitriy Novozhilov
2024-02-16 15:24:02 +02:00
committed by Space Team
parent da567e54b9
commit bd66b96f8a
45 changed files with 208 additions and 235 deletions
@@ -60,7 +60,11 @@ private fun ConeKotlinType.enhanceConeKotlinType(
when {
lowerResult == null && upperResult == null -> null
this is ConeRawType -> ConeRawType.create(lowerResult ?: lowerBound, upperResult ?: upperBound)
else -> coneFlexibleOrSimpleType(session.typeContext, lowerResult ?: lowerBound, upperResult ?: upperBound)
else -> coneFlexibleOrSimpleType(session.typeContext, lowerResult ?: lowerBound, upperResult ?: upperBound).let {
it.applyIf(it !is ConeFlexibleType) {
it.withAttributes(it.attributes + CompilerConeAttributes.EnhancedNullability)
}
}
}
}
is ConeSimpleKotlinType -> enhanceInflexibleType(