From edaff968ad65494d795d203e02b098aa3350c1fb Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 15 Apr 2019 13:43:35 +0300 Subject: [PATCH] Minor optimization in MutableList.transformFlat --- .../org/jetbrains/kotlin/ir/util/transform.kt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/transform.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/transform.kt index d20f3ba74a3..ae087cd7682 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/transform.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/transform.kt @@ -38,14 +38,16 @@ inline fun MutableList.transformFlat(transformation: (T) -> List?) { val transformed = transformation(item) - if (transformed == null) { - i++ - continue + when (transformed?.size) { + null -> i++ + 0 -> removeAt(i) + 1 -> set(i++, transformed.first()) + else -> { + addAll(i, transformed) + i += transformed.size + removeAt(i) + } } - - addAll(i, transformed) - i += transformed.size - removeAt(i) } }