[FIR] Support comparision operator and reified parameter reference in html dump

This commit is contained in:
Dmitriy Novozhilov
2020-03-02 16:47:02 +03:00
parent 9eeee6aad7
commit d4f57fb835
@@ -13,6 +13,8 @@ import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.* 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.*
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnostic import org.jetbrains.kotlin.fir.diagnostics.FirDiagnostic
@@ -1474,11 +1476,24 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver
is FirBinaryLogicExpression -> generate(expression) is FirBinaryLogicExpression -> generate(expression)
is FirCheckNotNullCall -> generate(expression) is FirCheckNotNullCall -> generate(expression)
is FirVarargArgumentsExpression -> generate(expression) is FirVarargArgumentsExpression -> generate(expression)
is FirResolvedReifiedParameterReference -> generate(expression)
is FirComparisonExpression -> generate(expression)
else -> inlineUnsupported(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) { private fun FlowContent.generate(varargArgumentExpression: FirVarargArgumentsExpression) {
generateList(varargArgumentExpression.arguments, separator = ",") { generate(it) } generateList(varargArgumentExpression.arguments, separator = ",") { generate(it) }
} }