From cdde765ad903df54410d6303cf603d858d549f5e Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 28 Sep 2021 19:13:15 +0200 Subject: [PATCH] FIR: precise lookupTag parameter of ConeTypeVariableType as it always accepts ConeTypeVariableTypeConstructor --- .../fir/analysis/checkers/ConeTypeCompatibilityChecker.kt | 5 ++--- .../cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt index 48c7fce15f5..573dbefac56 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt @@ -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}") diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt index 41fdc3a68b9..b654dee8f62 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt @@ -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 get() = emptyArray()