[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]
*/
abstract class AbstractListCommonizer<T, R>(
private val singleElementCommonizerFactory: () -> Commonizer<T, R>
private val singleElementCommonizerFactory: (Int) -> Commonizer<T, 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
final override val result: List<R>
@@ -29,10 +29,8 @@ abstract class AbstractListCommonizer<T, R>(
return false
val commonizers = commonizers
?: mutableListOf<Commonizer<T, R>>().apply {
repeat(next.size) {
this += singleElementCommonizerFactory()
}
?: Array(next.size) { index ->
singleElementCommonizerFactory(index)
}.also {
this.commonizers = it
}