You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
911 B
40 lines
911 B
3 years ago
|
// https://github.com/JetBrains/compose-jb/issues/774
|
||
3 years ago
|
// fixed in https://github.com/JetBrains/androidx/pull/118
|
||
3 years ago
|
|
||
|
import androidx.compose.runtime.Composable
|
||
|
|
||
3 years ago
|
val set = mutableSetOf<Int>()
|
||
|
|
||
3 years ago
|
fun main() {
|
||
|
callComposable {
|
||
3 years ago
|
Foo<String> { set.add(1) }
|
||
|
Foo<String>()
|
||
3 years ago
|
FooTakesTypedComposableLambda2("T")
|
||
|
FooTakesTypedComposableLambda3("T")
|
||
|
}
|
||
3 years ago
|
require(setOf(1,2,3,4) == set) { "Failed when running composable. Actual result - ${set.joinToString()}" }
|
||
3 years ago
|
}
|
||
|
|
||
|
class RouterState<C>
|
||
|
|
||
|
@Composable
|
||
3 years ago
|
fun <C : Any> Foo(block: @Composable (RouterState<C>) -> Unit = { set.add(2) }) {
|
||
|
block(RouterState())
|
||
|
}
|
||
3 years ago
|
|
||
|
@Composable
|
||
3 years ago
|
fun <T> FooTakesTypedComposableLambda2(t: T, composable: @Composable (T) -> T = {
|
||
|
set.add(3)
|
||
|
t
|
||
|
}) {
|
||
3 years ago
|
composable(t)
|
||
|
}
|
||
|
|
||
|
@Composable
|
||
3 years ago
|
fun <T> FooTakesTypedComposableLambda3(t: T, composable: @Composable () -> T = {
|
||
|
set.add(4)
|
||
|
t
|
||
|
}) {
|
||
3 years ago
|
composable()
|
||
|
}
|