// @Module:Main // fixed in https://github.com/JetBrains/androidx/pull/118 import androidx.compose.runtime.Composable import androidx.compose.runtime.currentComposer import androidx.compose.runtime.Composer fun main() { var called = false callComposable { ComposableWithTypedDefaultValue({ it -> check(it.value == null) called = true }) } require(called) { "Failed when running composables" } } // @Module:Lib import androidx.compose.runtime.Composable sealed class NullableWrapper { companion object { fun of(value: T?): NullableWrapper = if (value != null) { NonNullWrapper(value) } else { NullWrapper() } } abstract val value: T? } class NonNullWrapper(override val value: T) : NullableWrapper() class NullWrapper : NullableWrapper() { override val value: T? get() = null } @Composable // https://github.com/JetBrains/compose-jb/issues/1226 fun ComposableWithTypedDefaultValue( onChange: (NullableWrapper) -> Unit, valueWrapper: NullableWrapper = NullWrapper() ) { onChange(valueWrapper) }