FIR: Support safe-calls in renderers

^KT-38444 In Progress
This commit is contained in:
Denis Zharkov
2020-06-01 15:25:12 +03:00
parent 9f793f1486
commit 755b846877
3 changed files with 59 additions and 4 deletions
@@ -406,6 +406,17 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
//skip rendering for as/as?/is/!is
}
override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression, data: StringBuilder) {
safeCallExpression.receiver.accept(this, data)
data.append("?.{ ")
safeCallExpression.regularQualifiedAccess.accept(this, data)
data.append(" }")
}
override fun visitCheckedSafeCallSubject(checkedSafeCallSubject: FirCheckedSafeCallSubject, data: StringBuilder) {
data.append("\$subj\$")
}
override fun visitFunctionCall(functionCall: FirFunctionCall, data: StringBuilder) {
when (val callee = functionCall.calleeReference) {
is FirResolvedNamedReference -> {