32 lines
692 B
Kotlin
Vendored
32 lines
692 B
Kotlin
Vendored
// TARGET_BACKEND: JVM
|
|
// WITH_STDLIB
|
|
// ISSUE: KT-33545
|
|
|
|
import kotlin.experimental.ExperimentalTypeInference
|
|
|
|
interface Flow<out T> {
|
|
suspend fun collect(collector: FlowCollector<T>)
|
|
}
|
|
|
|
interface FlowCollector<in T> {
|
|
suspend fun emit(value: T)
|
|
}
|
|
|
|
inline fun <T> Flow<T>.collect(crossinline action: suspend (value: T) -> Unit): Unit {}
|
|
|
|
abstract class LiveData<T>
|
|
|
|
interface LiveDataScope<T> {
|
|
suspend fun emit(value: T)
|
|
}
|
|
|
|
@OptIn(ExperimentalTypeInference::class)
|
|
fun <T> liveData(block: suspend LiveDataScope<T>.() -> Unit): LiveData<T> = null!!
|
|
|
|
fun <Value> Flow<Value>.asLiveData() = liveData {
|
|
collect(this::emit)
|
|
// collect { emit(it) }
|
|
}
|
|
|
|
fun box(): String = "OK"
|