FIR analysis API: add workaround for java.io.Serializable type

This commit is contained in:
Mikhail Glukhikh
2022-05-27 11:54:14 +02:00
committed by Space
parent ef5cfab655
commit f4510773d0
5 changed files with 9 additions and 11 deletions
@@ -218,20 +218,18 @@ internal class ConeTypeIdeRenderer(
}
val classSymbolToRender = type.lookupTag.toSymbol(session)
if (classSymbolToRender == null) {
appendError("Unresolved type")
return
}
// To be able to render unresolved types like java.io.Serializable
val classId = classSymbolToRender?.classId ?: type.lookupTag.classId
if (!options.shortQualifiedNames && !classSymbolToRender.classId.isLocal) {
val packageName = classSymbolToRender.classId.packageFqName.asString()
if (!options.shortQualifiedNames && !classId.isLocal) {
val packageName = classId.packageFqName.asString()
if (packageName.isNotEmpty()) {
append(packageName).append(".")
}
}
if (classSymbolToRender !is FirRegularClassSymbol) {
append(classSymbolToRender.classId.shortClassName)
append(classId.shortClassName)
if (type.typeArguments.any()) {
type.typeArguments.joinTo(this, ", ", prefix = "<", postfix = ">") {
renderTypeProjection(it)
@@ -1,2 +1,2 @@
Resolved to:
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, ERROR_TYPE <Unresolved type>
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, java.io.Serializable
@@ -1,2 +1,2 @@
Resolved to:
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, ERROR_TYPE <Unresolved type>
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, java.io.Serializable
@@ -1,2 +1,2 @@
Resolved to:
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, ERROR_TYPE <Unresolved type>
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, java.io.Serializable
@@ -1,2 +1,2 @@
Resolved to:
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, ERROR_TYPE <Unresolved type>
0: (in kotlin) class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, java.io.Serializable