[FIR] Add implementation of intersection types to Fir type system

This commit is contained in:
Dmitriy Novozhilov
2019-07-29 09:59:33 +03:00
parent 1708a34eb8
commit 637fb55a7b
17 changed files with 350 additions and 26 deletions
@@ -599,6 +599,12 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
}
}
private fun FlowContent.generate(intersectionType: ConeIntersectionType) {
+"("
generateList(intersectionType.intersectedTypes.toList(), " & ") { generate(it) }
+")"
}
private fun FlowContent.generate(type: ConeClassType) {
resolved {
symbolRef(type.lookupTag.toSymbol(session)) {
@@ -704,6 +710,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
is ConeFlexibleType -> resolved { generate(type) }
is ConeCapturedType -> inlineUnsupported(type)
is ConeDefinitelyNotNullType -> inlineUnsupported(type)
is ConeIntersectionType -> resolved { generate(type) }
}
if (type.typeArguments.isNotEmpty()) {
+"<"