From d4f57fb8359498422ddba01172e2b6cc94afeaf8 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 2 Mar 2020 16:47:02 +0300 Subject: [PATCH] [FIR] Support comparision operator and reified parameter reference in 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 c8cf9628093..b136b88cbba 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 @@ -13,6 +13,8 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.* +import org.jetbrains.kotlin.fir.backend.left +import org.jetbrains.kotlin.fir.backend.right import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor import org.jetbrains.kotlin.fir.diagnostics.FirDiagnostic @@ -1474,11 +1476,24 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver is FirBinaryLogicExpression -> generate(expression) is FirCheckNotNullCall -> generate(expression) is FirVarargArgumentsExpression -> generate(expression) + is FirResolvedReifiedParameterReference -> generate(expression) + is FirComparisonExpression -> generate(expression) else -> inlineUnsupported(expression) } } } + private fun FlowContent.generate(comparisonExpression: FirComparisonExpression) { + generate(comparisonExpression.left) + +" ${comparisonExpression.operation.operator} " + generate(comparisonExpression.right) + } + + private fun FlowContent.generate(resolvedReifiedParameterReference: FirResolvedReifiedParameterReference) { + val typeParameter = resolvedReifiedParameterReference.symbol.fir + +typeParameter.name.identifier + } + private fun FlowContent.generate(varargArgumentExpression: FirVarargArgumentsExpression) { generateList(varargArgumentExpression.arguments, separator = ",") { generate(it) } }