From a0176fbde53e63856b217e4d7b1d2c3f6ba89c47 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 16 Apr 2019 21:31:34 +0300 Subject: [PATCH] Support labels in fir html dump --- .../org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 fb7e9f30194..b266578f0c1 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 @@ -1021,6 +1021,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver private fun FlowContent.generate(whileLoop: FirWhileLoop) { iline { + generateLabel(whileLoop) keyword("while ") +"(" generate(whileLoop.condition) @@ -1075,6 +1076,14 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver } } + private fun FlowContent.generateLabel(labeledElement: FirLabeledElement) { + val label = labeledElement.label ?: return + span("label") { + +label.name + +"@" + } + } + private fun FlowContent.generate(expression: FirExpression) { exprType(expression.typeRef) { when (expression) { @@ -1105,6 +1114,11 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver +" = " generate(expression.expression) } + is FirLambdaArgumentExpression -> { + keyword("lambda") + +" = " + generate(expression.expression) + } is FirTypeOperatorCall -> generate(expression) is FirOperatorCall -> generate(expression) else -> inlineUnsupported(expression) @@ -1190,6 +1204,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver private fun FlowContent.generate(anonymousFunction: FirAnonymousFunction, isStatement: Boolean) { generateMultiLineExpression(isStatement) { iline { + generateLabel(anonymousFunction) keyword("fun ") generateReceiver(anonymousFunction.receiverTypeRef)