FIR Java: fix conversion of primitive type

This commit is contained in:
Mikhail Glukhikh
2021-08-26 10:33:14 +03:00
committed by TeamCityServer
parent a12e31daf1
commit 020b6e9dd1
2 changed files with 18 additions and 9 deletions
@@ -776,13 +776,22 @@ private fun FirConstExpression<*>.setProperType(session: FirSession): FirConstEx
private fun JavaType.toFirResolvedTypeRef(
session: FirSession, javaTypeParameterStack: JavaTypeParameterStack
): FirResolvedTypeRef {
if (this is JavaClassifierType) return toFirResolvedTypeRef(
session,
javaTypeParameterStack,
isForSupertypes = false,
forTypeParameterBounds = false
)
return buildResolvedTypeRef {
type = ConeClassErrorType(ConeSimpleDiagnostic("Unexpected JavaType: $this", DiagnosticKind.Java))
return when (this) {
is JavaClassifierType -> toFirResolvedTypeRef(
session,
javaTypeParameterStack,
isForSupertypes = false,
forTypeParameterBounds = false
)
is JavaPrimitiveType -> buildResolvedTypeRef {
type = toConeKotlinTypeWithoutEnhancement(
session,
javaTypeParameterStack,
)
this@toFirResolvedTypeRef.annotations.mapTo(annotations) { it.toFirAnnotationCall(session, javaTypeParameterStack) }
}
else -> buildResolvedTypeRef {
type = ConeClassErrorType(ConeSimpleDiagnostic("Unexpected JavaType: ${this@toFirResolvedTypeRef}", DiagnosticKind.Java))
}
}
}