[FIR] Refactor constructors of ConeTypeRenders

This commit is contained in:
Kirill Rakhman
2023-09-12 14:25:36 +02:00
committed by Space Team
parent da0308806a
commit 99b852adf8
3 changed files with 8 additions and 13 deletions
@@ -108,7 +108,7 @@ private fun FirTypeRef.renderType(builder: StringBuilder = StringBuilder()): Str
packageDirectiveRenderer = null,
propertyAccessorRenderer = null,
resolvePhaseRenderer = null,
typeRenderer = ConeTypeRenderer().apply { attributeRenderer = EmptyConeTypeAttributeRenderer },
typeRenderer = ConeTypeRenderer(attributeRenderer = EmptyConeTypeAttributeRenderer),
valueParameterRenderer = null,
errorExpressionRenderer = null,
).renderElementAsString(this)
@@ -8,11 +8,11 @@ package org.jetbrains.kotlin.fir.renderer
import org.jetbrains.kotlin.builtins.functions.FunctionTypeKind
import org.jetbrains.kotlin.fir.types.*
open class ConeTypeRenderer {
open class ConeTypeRenderer(
private val attributeRenderer: ConeAttributeRenderer = ConeAttributeRenderer.ToString
) {
lateinit var builder: StringBuilder
lateinit var idRenderer: ConeIdRenderer
var attributeRenderer: ConeAttributeRenderer = ConeAttributeRenderer.ToString
open fun renderAsPossibleFunctionType(
type: ConeKotlinType,
@@ -11,17 +11,12 @@ import org.jetbrains.kotlin.fir.types.ConeIntegerLiteralType
import org.jetbrains.kotlin.renderer.replacePrefixesInTypeRepresentations
import org.jetbrains.kotlin.renderer.typeStringsDifferOnlyInNullability
class ConeTypeRendererForReadability : ConeTypeRenderer {
class ConeTypeRendererForReadability(
private val idRendererCreator: () -> ConeIdRenderer,
) : ConeTypeRenderer() {
private val idRendererCreator: () -> ConeIdRenderer
constructor(idRendererCreator: () -> ConeIdRenderer) : super() {
this.idRendererCreator = idRendererCreator
}
constructor(builder: StringBuilder, idRendererCreator: () -> ConeIdRenderer) : super() {
constructor(builder: StringBuilder, idRendererCreator: () -> ConeIdRenderer) : this(idRendererCreator) {
this.builder = builder
this.idRendererCreator = idRendererCreator
this.idRenderer = idRendererCreator()
idRenderer.builder = builder
}