// https://github.com/JetBrains/compose-jb/issues/774 // fixed in https://github.com/JetBrains/androidx/pull/118 import androidx.compose.runtime.Composable val set = mutableSetOf() fun main() { callComposable { Foo { set.add(1) } Foo() FooTakesTypedComposableLambda2("T") FooTakesTypedComposableLambda3("T") } require(setOf(1,2,3,4) == set) { "Failed when running composable. Actual result - ${set.joinToString()}" } } class RouterState @Composable fun Foo(block: @Composable (RouterState) -> Unit = { set.add(2) }) { block(RouterState()) } @Composable fun FooTakesTypedComposableLambda2(t: T, composable: @Composable (T) -> T = { set.add(3) t }) { composable(t) } @Composable fun FooTakesTypedComposableLambda3(t: T, composable: @Composable () -> T = { set.add(4) t }) { composable() }