[FIR] Complement fir rendering with newly created nodes
This commit is contained in:
@@ -1323,11 +1323,10 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
+")"
|
+")"
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FlowContent.generateBinary(expression: FirOperatorCall) {
|
private fun FlowContent.generateBinary(first: FirExpression, second: FirExpression, operation: FirOperation) {
|
||||||
val (first, second) = expression.arguments
|
|
||||||
generate(first)
|
generate(first)
|
||||||
ws
|
ws
|
||||||
unresolved { +expression.operation.operator }
|
unresolved { +operation.operator }
|
||||||
ws
|
ws
|
||||||
generate(second)
|
generate(second)
|
||||||
}
|
}
|
||||||
@@ -1341,7 +1340,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
private fun FlowContent.generate(expression: FirOperatorCall) {
|
private fun FlowContent.generate(expression: FirOperatorCall) {
|
||||||
when (expression.arguments.size) {
|
when (expression.arguments.size) {
|
||||||
1 -> generateUnary(expression)
|
1 -> generateUnary(expression)
|
||||||
2 -> generateBinary(expression)
|
2 -> generateBinary(expression.arguments[0], expression.arguments[1], expression.operation)
|
||||||
else -> inlineUnsupported(expression)
|
else -> inlineUnsupported(expression)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1354,6 +1353,10 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
generate(typeOperatorCall.conversionTypeRef)
|
generate(typeOperatorCall.conversionTypeRef)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun FlowContent.generate(equalityOperatorCall: FirEqualityOperatorCall) {
|
||||||
|
generateBinary(equalityOperatorCall.arguments[0], equalityOperatorCall.arguments[1], equalityOperatorCall.operation)
|
||||||
|
}
|
||||||
|
|
||||||
private fun FlowContent.generate(checkNotNullCall: FirCheckNotNullCall) {
|
private fun FlowContent.generate(checkNotNullCall: FirCheckNotNullCall) {
|
||||||
generate(checkNotNullCall.argument)
|
generate(checkNotNullCall.argument)
|
||||||
+"!!"
|
+"!!"
|
||||||
@@ -1567,6 +1570,8 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
|
|||||||
}
|
}
|
||||||
is FirTypeOperatorCall -> generate(expression)
|
is FirTypeOperatorCall -> generate(expression)
|
||||||
is FirOperatorCall -> generate(expression)
|
is FirOperatorCall -> generate(expression)
|
||||||
|
is FirAssignmentOperatorStatement -> generateBinary(expression.leftArgument, expression.rightArgument, expression.operation)
|
||||||
|
is FirEqualityOperatorCall -> generate(expression)
|
||||||
is FirBinaryLogicExpression -> generate(expression)
|
is FirBinaryLogicExpression -> generate(expression)
|
||||||
is FirCheckNotNullCall -> generate(expression)
|
is FirCheckNotNullCall -> generate(expression)
|
||||||
is FirElvisExpression -> generate(expression)
|
is FirElvisExpression -> generate(expression)
|
||||||
|
|||||||
@@ -1097,6 +1097,22 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
print(")")
|
print(")")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun visitAssignmentOperatorStatement(assignmentOperatorStatement: FirAssignmentOperatorStatement) {
|
||||||
|
assignmentOperatorStatement.annotations.renderAnnotations()
|
||||||
|
print(assignmentOperatorStatement.operation.operator)
|
||||||
|
print("(")
|
||||||
|
assignmentOperatorStatement.leftArgument.accept(this@FirRenderer)
|
||||||
|
print(", ")
|
||||||
|
assignmentOperatorStatement.rightArgument.accept(this@FirRenderer)
|
||||||
|
print(")")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun visitEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall) {
|
||||||
|
equalityOperatorCall.annotations.renderAnnotations()
|
||||||
|
print(equalityOperatorCall.operation.operator)
|
||||||
|
visitCall(equalityOperatorCall)
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitComponentCall(componentCall: FirComponentCall) {
|
override fun visitComponentCall(componentCall: FirComponentCall) {
|
||||||
visitFunctionCall(componentCall)
|
visitFunctionCall(componentCall)
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -406,6 +406,14 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
|||||||
//skip rendering for as/as?/is/!is
|
//skip rendering for as/as?/is/!is
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun visitAssignmentOperatorStatement(assignmentOperatorStatement: FirAssignmentOperatorStatement, data: StringBuilder) {
|
||||||
|
data.append("assignment operator statement ${assignmentOperatorStatement.operation}")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun visitEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall, data: StringBuilder) {
|
||||||
|
data.append("equality operator call ${equalityOperatorCall.operation}")
|
||||||
|
}
|
||||||
|
|
||||||
override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression, data: StringBuilder) {
|
override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression, data: StringBuilder) {
|
||||||
safeCallExpression.receiver.accept(this, data)
|
safeCallExpression.receiver.accept(this, data)
|
||||||
data.append("?.{ ")
|
data.append("?.{ ")
|
||||||
|
|||||||
Reference in New Issue
Block a user