TypeSystemContext: Rework raw types processing

All the current usages are about checking if the type is raw,
also in K2 it is simply incorrect to assume that only flexible types
might be raw
This commit is contained in:
Denis.Zharkov
2023-02-21 16:50:29 +01:00
committed by Space Team
parent b6e59fe8fd
commit eb09a25239
7 changed files with 10 additions and 12 deletions
@@ -113,9 +113,9 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty
return this as? ConeDynamicType
}
override fun FlexibleTypeMarker.asRawType(): RawTypeMarker? {
require(this is ConeFlexibleType)
return this as? ConeRawType
override fun KotlinTypeMarker.isRawType(): Boolean {
require(this is ConeKotlinType)
return this.isRaw()
}
override fun FlexibleTypeMarker.upperBound(): SimpleTypeMarker {
@@ -54,7 +54,7 @@ interface IrTypeSystemContext : TypeSystemContext, TypeSystemCommonSuperTypesCon
override fun FlexibleTypeMarker.asDynamicType() = this as? IrDynamicType
override fun FlexibleTypeMarker.asRawType(): RawTypeMarker? = null
override fun KotlinTypeMarker.isRawType(): Boolean = false
override fun FlexibleTypeMarker.upperBound(): SimpleTypeMarker {
return when (this) {
@@ -118,7 +118,7 @@ abstract class AbstractTypeApproximator(
is FlexibleTypeMarker -> {
if (type.isDynamic()) {
return if (conf.dynamic) null else type.bound()
} else if (type.asRawType() != null) {
} else if (type.isRawType()) {
return if (conf.rawType) null else type.bound()
}