diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/TargetDependent.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/TargetDependent.kt index 1e14e5f3bca..9b30f74ef60 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/TargetDependent.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/TargetDependent.kt @@ -66,6 +66,14 @@ internal fun TargetDependent.mapValue(mapper: (T) -> R): TargetDepende return TargetDependent(targets) { target -> this@mapValue.get(target).let(mapper) } } +internal inline fun TargetDependent.mapValueEager(mapper: (T) -> R): TargetDependent { + return EagerTargetDependent(targets) { target -> mapper(this[target]) } +} + +internal inline fun TargetDependent.mapValueEagerWithTarget(mapper: (target: CommonizerTarget, T) -> R): TargetDependent { + return EagerTargetDependent(targets) { target -> mapper(target, this[target]) } +} + internal fun TargetDependent.mapTargets(mapper: (CommonizerTarget) -> R): TargetDependent { return TargetDependent(targets) { target -> mapper(target) } } @@ -84,7 +92,9 @@ internal fun TargetDependent(keys: Iterable, factory: (tar internal fun TargetDependent(vararg pairs: Pair) = pairs.toMap().toTargetDependent() -internal fun EagerTargetDependent(keys: Iterable, factory: (target: CommonizerTarget) -> T): TargetDependent { +internal inline fun EagerTargetDependent( + keys: Iterable, factory: (target: CommonizerTarget) -> T +): TargetDependent { return keys.associateWith(factory).toTargetDependent() }