Change lookup tags from interfaces to abstract classes

This commit is contained in:
Simon Ogorodnik
2019-06-04 14:36:23 +03:00
committed by Mikhail Glukhikh
parent a10deb5f69
commit 146a53f18c
16 changed files with 37 additions and 34 deletions
@@ -220,7 +220,8 @@ class JavaSymbolProvider(
FirResolvedTypeRefImpl(
this@JavaSymbolProvider.session, null,
firSymbol.constructType(
classTypeParameters.map { ConeTypeParameterTypeImpl(it.symbol, false) }.toTypedArray(), false
classTypeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }.toTypedArray(),
false
)
)
).apply {
@@ -160,7 +160,7 @@ internal fun JavaClassifierType.toConeKotlinTypeWithNullability(
}
is JavaTypeParameter -> {
val symbol = javaTypeParameterStack[classifier]
ConeTypeParameterTypeImpl(symbol, isNullable)
ConeTypeParameterTypeImpl(symbol.toLookupTag(), isNullable)
}
else -> ConeClassErrorType(reason = "Unexpected classifier: $classifier")
}
@@ -149,7 +149,7 @@ private fun JavaClassifierType.enhanceInflexibleType(
val kotlinClassId = mappedId ?: classId
ConeClassLikeLookupTagImpl(kotlinClassId)
}
is JavaTypeParameter -> javaTypeParameterStack[classifier]
is JavaTypeParameter -> javaTypeParameterStack[classifier].toLookupTag()
else -> return toNotNullConeKotlinType(session, javaTypeParameterStack)
}
@@ -73,7 +73,7 @@ class JavaClassUseSiteScope(
if (overriddenInJava.typeParameters.size != base.typeParameters.size) return false
val types = base.typeParameters.map {
ConeTypeParameterTypeImpl(it.symbol, false)
ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false)
}
val substitution = ConeSubstitutorByMap(overriddenInJava.typeParameters.map { it.symbol }.zip(types).toMap())
if (!overriddenInJava.typeParameters.zip(base.typeParameters).all { (a, b) ->