FIR: precise lookupTag parameter of ConeTypeVariableType as it always accepts ConeTypeVariableTypeConstructor

This commit is contained in:
Ilya Kirillov
2021-09-28 19:13:15 +02:00
committed by TeamCityServer
parent d3913b85cf
commit cdde765ad9
2 changed files with 3 additions and 4 deletions
@@ -239,9 +239,8 @@ object ConeTypeCompatibilityChecker {
is ConeClassErrorType -> emptySet() // Ignore error types
is ConeLookupTagBasedType -> when (this) {
is ConeClassLikeType -> setOf(this)
is ConeTypeVariableType -> when (val tag = lookupTag) {
is ConeTypeVariableTypeConstructor -> (tag.originalTypeParameter as? ConeTypeParameterLookupTag)?.typeParameterSymbol.collectUpperBounds()
else -> throw IllegalStateException("missing branch for ${lookupTag.javaClass.name}")
is ConeTypeVariableType -> {
(lookupTag.originalTypeParameter as? ConeTypeParameterLookupTag)?.typeParameterSymbol.collectUpperBounds()
}
is ConeTypeParameterType -> lookupTag.typeParameterSymbol.collectUpperBounds()
else -> throw IllegalStateException("missing branch for ${javaClass.name}")
@@ -226,7 +226,7 @@ data class ConeCapturedType(
data class ConeTypeVariableType(
override val nullability: ConeNullability,
override val lookupTag: ConeClassifierLookupTag,
override val lookupTag: ConeTypeVariableTypeConstructor,
override val attributes: ConeAttributes = ConeAttributes.Empty,
) : ConeLookupTagBasedType() {
override val typeArguments: Array<out ConeTypeProjection> get() = emptyArray()