From 1b2f4ad0712cd9e38604ee9602572d802aa8492e Mon Sep 17 00:00:00 2001 From: Anton Bannykh Date: Wed, 14 Apr 2021 19:22:06 +0300 Subject: [PATCH] dumpKotlinLike: add a flag to treat `else` as `true` Deserialized IR always has `true` instead of `else` branch. Dumping `else` as `true` helps comparing regular and serialized IR. --- .../ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt index 8156fc6da5e..cd67c16fdd2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt @@ -58,6 +58,7 @@ class KotlinLikeDumpOptions( // TODO support val labelPrintingStrategy: LabelPrintingStrategy = LabelPrintingStrategy.NEVER, val printFakeOverridesStrategy: FakeOverridesStrategy = FakeOverridesStrategy.ALL, + val printElseAsTrue: Boolean = false, /* TODO add more options: always print visibility? @@ -1244,7 +1245,7 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption override fun visitElseBranch(branch: IrElseBranch, data: IrDeclaration?) { p.printIndent() if ((branch.condition as? IrConst<*>)?.value == true) { - p.printWithNoIndent("else") + p.printWithNoIndent(if (options.printElseAsTrue) "true" else "else") } else { p.printWithNoIndent("/* else */ ") branch.condition.accept(this, data)