[Commonizer] Use Array instead of List in AbstractListCommonizer

This commit is contained in:
Dmitriy Dolovov
2020-08-05 17:39:25 +07:00
parent e468a347b5
commit 9ef727747b
@@ -16,9 +16,9 @@ import org.jetbrains.kotlin.descriptors.commonizer.cir.CirType
* Output: list of [CirType] * Output: list of [CirType]
*/ */
abstract class AbstractListCommonizer<T, R>( abstract class AbstractListCommonizer<T, R>(
private val singleElementCommonizerFactory: () -> Commonizer<T, R> private val singleElementCommonizerFactory: (Int) -> Commonizer<T, R>
) : Commonizer<List<T>, List<R>> { ) : Commonizer<List<T>, List<R>> {
private var commonizers: List<Commonizer<T, R>>? = null private var commonizers: Array<Commonizer<T, R>>? = null
private var error = false private var error = false
final override val result: List<R> final override val result: List<R>
@@ -29,10 +29,8 @@ abstract class AbstractListCommonizer<T, R>(
return false return false
val commonizers = commonizers val commonizers = commonizers
?: mutableListOf<Commonizer<T, R>>().apply { ?: Array(next.size) { index ->
repeat(next.size) { singleElementCommonizerFactory(index)
this += singleElementCommonizerFactory()
}
}.also { }.also {
this.commonizers = it this.commonizers = it
} }