[FIR] Adjust abbreviated type rendering in Html dump

This commit is contained in:
simon.ogorodnik
2020-03-19 21:03:38 +03:00
parent 5a3eefcba1
commit 762861a2e9
@@ -702,15 +702,20 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
symbolRef(symbol) {
simpleName(type.lookupTag.name)
}
generateTypeArguments(type)
+" = "
generate(
type.directExpansionType(session)?.fullyExpandedType(session) ?: ConeKotlinErrorType("No expansion for type-alias")
)
val directlyExpanded = type.directExpansionType(session)
if (directlyExpanded != null) {
generate(directlyExpanded.fullyExpandedType(session))
} else {
error { +"No expansion for type-alias" }
}
}
else -> {
symbolRef(symbol) {
fqn(type.lookupTag.classId.relativeClassName)
}
generateTypeArguments(type)
}
}
}
@@ -791,10 +796,20 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
}
private fun FlowContent.generateTypeArguments(type: ConeKotlinType) {
if (type.typeArguments.isNotEmpty()) {
+"<"
generateList(type.typeArguments.toList()) {
generate(it)
}
+">"
}
}
private fun FlowContent.generate(type: ConeKotlinType) {
when (type) {
is ConeClassErrorType -> error { +type.reason }
is ConeClassLikeType -> generate(type)
is ConeClassLikeType -> return generate(type)
is ConeTypeParameterType -> resolved {
symbolRef(type.lookupTag.toSymbol()) {
simpleName(type.lookupTag.name)
@@ -810,13 +825,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
is ConeIntersectionType -> resolved { generate(type) }
is ConeIntegerLiteralType -> inlineUnsupported(type)
}
if (type.typeArguments.isNotEmpty()) {
+"<"
generateList(type.typeArguments.toList()) {
generate(it)
}
+">"
}
generateTypeArguments(type)
if (type.isMarkedNullable) {
+"?"
}