[FIR] Fix type reference for 1st arg of GetClassCall

This commit is contained in:
Jinseong Jeon
2020-04-01 11:16:21 +03:00
committed by Mikhail Glukhikh
parent 4a5643856e
commit 3e6b38a921
84 changed files with 15 additions and 87 deletions
@@ -477,12 +477,19 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
val typeOfExpression = when (val lhs = transformedGetClassCall.argument) {
is FirResolvedQualifier -> {
val symbol = lhs.symbol
symbol?.constructType(
Array((symbol.phasedFir as? FirTypeParametersOwner)?.typeParameters?.size ?: 0) {
ConeStarProjection
},
isNullable = false,
) ?: lhs.resultType.coneTypeUnsafe()
val typeRef =
symbol?.constructType(
Array((symbol.phasedFir as? FirTypeParametersOwner)?.typeParameters?.size ?: 0) {
ConeStarProjection
},
isNullable = false,
)
if (typeRef != null) {
lhs.replaceTypeRef(buildResolvedTypeRef { type = typeRef })
typeRef
} else {
lhs.resultType.coneTypeUnsafe()
}
}
is FirResolvedReifiedParameterReference -> {
val symbol = lhs.symbol