just use the varargs/list version,
inline fun <T1, T2, T3, T4, T5, T6, T7, R> combine(
flow1: Flow<T1>,
flow2: Flow<T2>,
flow3: Flow<T3>,
flow4: Flow<T4>,
flow5: Flow<T5>,
flow6: Flow<T6>,
flow7: Flow<T7>,
crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7) -> R
): Flow<R> = combine(listOf(
flow1,
flow2,
flow3,
flow4,
flow5,
flow6,
flow7
)) { (value1, value2, value3, value4, value5, value6, value7) ->
transform
(value1, value2, value3, value4, value5, value6, value7)
}
it involves an unchecked cast, but consumers don't have to worry about that