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) } }