From 48ee4791b6bd15bf671566e048cf1de27dfaf22d Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Thu, 18 Feb 2021 02:12:16 +0300 Subject: [PATCH] [VISUALIZER] Fix rendering of enum class and enum entry in fir --- .../kotlin/compiler/visualizer/FirVisualizer.kt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt index e965a2d12fd..5e88d151aa5 100644 --- a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt +++ b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt @@ -334,8 +334,17 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { } private fun renderVariable(variable: FirVariable<*>, data: StringBuilder) { - if (variable !is FirValueParameter) { - if (variable.isVar) data.append("var ") else if (variable.isVal) data.append("val ") + when (variable) { + is FirEnumEntry -> { + data.append("enum entry ") + variable.returnTypeRef.accept(this, data) + data.append(".${variable.name}") + return + } + !is FirValueParameter -> when { + variable.isVar -> data.append("var ") + variable.isVal -> data.append("val ") + } } data.append(getSymbolId(variable.symbol)).append(": ").append(variable.returnTypeRef.render()) } @@ -564,8 +573,8 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { override fun visitResolvedQualifier(resolvedQualifier: FirResolvedQualifier, data: StringBuilder) { resolvedQualifier.symbol?.fir?.let { fir -> if (fir is FirClass) { - data.append(fir.classKind.name.toLowerCaseAsciiOnly()).append(" ") - data.append((fir as? FirRegularClass)?.name ?: Name.special("")) + data.append(fir.classKind.name.toLowerCaseAsciiOnly().replace("_", " ")).append(" ") + data.append(fir.symbol.classId.asString().removeCurrentFilePackage()) if (fir.superTypeRefs.any { it.render() != "kotlin/Any" }) { data.append(": ") fir.superTypeRefs.joinTo(data, separator = ", ") { typeRef -> typeRef.render() }