Support labels in fir html dump
This commit is contained in:
committed by
Mikhail Glukhikh
parent
541e1addf9
commit
a0176fbde5
@@ -1021,6 +1021,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
|
|
||||||
private fun FlowContent.generate(whileLoop: FirWhileLoop) {
|
private fun FlowContent.generate(whileLoop: FirWhileLoop) {
|
||||||
iline {
|
iline {
|
||||||
|
generateLabel(whileLoop)
|
||||||
keyword("while ")
|
keyword("while ")
|
||||||
+"("
|
+"("
|
||||||
generate(whileLoop.condition)
|
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) {
|
private fun FlowContent.generate(expression: FirExpression) {
|
||||||
exprType(expression.typeRef) {
|
exprType(expression.typeRef) {
|
||||||
when (expression) {
|
when (expression) {
|
||||||
@@ -1105,6 +1114,11 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
+" = "
|
+" = "
|
||||||
generate(expression.expression)
|
generate(expression.expression)
|
||||||
}
|
}
|
||||||
|
is FirLambdaArgumentExpression -> {
|
||||||
|
keyword("lambda")
|
||||||
|
+" = "
|
||||||
|
generate(expression.expression)
|
||||||
|
}
|
||||||
is FirTypeOperatorCall -> generate(expression)
|
is FirTypeOperatorCall -> generate(expression)
|
||||||
is FirOperatorCall -> generate(expression)
|
is FirOperatorCall -> generate(expression)
|
||||||
else -> inlineUnsupported(expression)
|
else -> inlineUnsupported(expression)
|
||||||
@@ -1190,6 +1204,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
private fun FlowContent.generate(anonymousFunction: FirAnonymousFunction, isStatement: Boolean) {
|
private fun FlowContent.generate(anonymousFunction: FirAnonymousFunction, isStatement: Boolean) {
|
||||||
generateMultiLineExpression(isStatement) {
|
generateMultiLineExpression(isStatement) {
|
||||||
iline {
|
iline {
|
||||||
|
generateLabel(anonymousFunction)
|
||||||
keyword("fun ")
|
keyword("fun ")
|
||||||
generateReceiver(anonymousFunction.receiverTypeRef)
|
generateReceiver(anonymousFunction.receiverTypeRef)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user