[VISUALIZER] Fix rendering of enum class and enum entry in fir

This commit is contained in:
Ivan Kylchik
2021-02-18 02:12:16 +03:00
committed by TeamCityServer
parent e2a7da25b0
commit 48ee4791b6
@@ -334,8 +334,17 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
} }
private fun renderVariable(variable: FirVariable<*>, data: StringBuilder) { private fun renderVariable(variable: FirVariable<*>, data: StringBuilder) {
if (variable !is FirValueParameter) { when (variable) {
if (variable.isVar) data.append("var ") else if (variable.isVal) data.append("val ") 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()) 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) { override fun visitResolvedQualifier(resolvedQualifier: FirResolvedQualifier, data: StringBuilder) {
resolvedQualifier.symbol?.fir?.let { fir -> resolvedQualifier.symbol?.fir?.let { fir ->
if (fir is FirClass) { if (fir is FirClass) {
data.append(fir.classKind.name.toLowerCaseAsciiOnly()).append(" ") data.append(fir.classKind.name.toLowerCaseAsciiOnly().replace("_", " ")).append(" ")
data.append((fir as? FirRegularClass)?.name ?: Name.special("<anonymous>")) data.append(fir.symbol.classId.asString().removeCurrentFilePackage())
if (fir.superTypeRefs.any { it.render() != "kotlin/Any" }) { if (fir.superTypeRefs.any { it.render() != "kotlin/Any" }) {
data.append(": ") data.append(": ")
fir.superTypeRefs.joinTo(data, separator = ", ") { typeRef -> typeRef.render() } fir.superTypeRefs.joinTo(data, separator = ", ") { typeRef -> typeRef.render() }