From b497f39c29c0f099dcb0393b712bbabb73c8d15d Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 28 Sep 2020 18:01:37 +0200 Subject: [PATCH] IR: do not try to render IrUninitializedType This will improve exception messages in case some error happens on a function whose return type is uninitialized, as in KT-41401. --- .../src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt index d4ad3307ae0..f6db31a23f1 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol import org.jetbrains.kotlin.ir.types.* +import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.types.Variance @@ -106,8 +107,9 @@ class RenderIrElementVisitor(private val normalizeNames: Boolean = false) : IrEl private inline fun T.runTrimEnd(fn: T.() -> String): String = run(fn).trimEnd() - private fun IrType.render() = - "${renderTypeAnnotations(annotations)}${renderTypeInner()}" + private fun IrType.render(): String = + if (this === IrUninitializedType) "" + else "${renderTypeAnnotations(annotations)}${renderTypeInner()}" private fun IrType.renderTypeInner() = when (this) {