From ee73d21d32acc833a4facdef844700ce8a522866 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 23 Apr 2019 04:18:04 +0300 Subject: [PATCH] Expand type-aliases in cone (FIR) type context --- .../src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index b0e0e13d906..5c2344ff1df 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -130,6 +130,8 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext { return when (this) { is ConeCapturedType -> constructor is ConeTypeVariableType -> this.lookupTag as ConeTypeVariableTypeConstructor // TODO: WTF + is ConeAbbreviatedType -> this.directExpansionType(session)?.typeConstructor() + ?: ErrorTypeConstructor("Failed to expand alias: ${this}") is ConeLookupTagBasedType -> this.lookupTag.toSymbol(session) ?: ErrorTypeConstructor("Unresolved: ${this.lookupTag}") else -> error("?: ${this}") } @@ -341,9 +343,9 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext { if (this is ConeCapturedType) return true if (this is ConeTypeVariableType) return false require(this is ConeLookupTagBasedType) - val symbol = this.lookupTag.toSymbol(session) - return symbol is FirClassSymbol || - symbol is FirTypeParameterSymbol + val typeConstructor = this.typeConstructor() + return typeConstructor is FirClassSymbol || + typeConstructor is FirTypeParameterSymbol } override fun captureFromExpression(type: KotlinTypeMarker): KotlinTypeMarker? {