diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index e30f97c8307..f744c5d1c7b 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -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) { +"?" }