[IR] Support disabling of rendering IrErrorType inner KotlinType

This commit is contained in:
Roman Artemev
2021-06-07 18:50:44 +03:00
committed by teamcityserver
parent 2eac442705
commit 1831c0a14b
2 changed files with 9 additions and 3 deletions
@@ -49,7 +49,7 @@ class DumpIrTreeVisitor(
) : IrElementVisitor<Unit, String> {
private val printer = Printer(out, " ")
private val elementRenderer = RenderIrElementVisitor(normalizeNames)
private val elementRenderer = RenderIrElementVisitor(normalizeNames, !stableOrder)
private fun IrType.render() = elementRenderer.renderType(this)
private fun List<IrDeclaration>.ordered(): List<IrDeclaration> {
@@ -95,6 +95,12 @@ class DumpIrTreeVisitor(
}
}
override fun visitExternalPackageFragment(declaration: IrExternalPackageFragment, data: String) {
declaration.dumpLabeledElementWith(data) {
declaration.declarations.ordered().dumpElements()
}
}
override fun visitFile(declaration: IrFile, data: String) {
declaration.dumpLabeledElementWith(data) {
dumpAnnotations(declaration)
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull
fun IrElement.render() =
accept(RenderIrElementVisitor(), null)
class RenderIrElementVisitor(private val normalizeNames: Boolean = false) : IrElementVisitor<String, Nothing?> {
class RenderIrElementVisitor(private val normalizeNames: Boolean = false, private val verboseErrorTypes: Boolean = true) : IrElementVisitor<String, Nothing?> {
private val nameMap: MutableMap<IrVariableSymbol, String> = mutableMapOf()
private var temporaryIndex: Int = 0
@@ -111,7 +111,7 @@ class RenderIrElementVisitor(private val normalizeNames: Boolean = false) : IrEl
when (this) {
is IrDynamicType -> "dynamic"
is IrErrorType -> "IrErrorType($originalKotlinType)"
is IrErrorType -> "IrErrorType(${if (verboseErrorTypes) originalKotlinType else null})"
is IrSimpleType -> buildTrimEnd {
append(classifier.renderClassifierFqn())