Hey Composers π, when walking through the internal code in different Compose libraries, we often encounter variety annotations commonly used in Jetpack Compose's standard libraries. Understanding their meanings and uses is quite beneficial and these...
blog.shreyaspatil.dev19 min read
A crucial rule is that @ReadOnlyComposable functions can only call other @Composable functions that are also marked as @ReadOnlyComposable. Attempting to invoke a regular UI-emitting composable from within a @ReadOnlyComposable function will lead to a compile-time error. This restriction is vital for maintaining the integrity of the "no UI emission" contract.
In this paragraph you say that this @ReadOnlyComposable only call which have this annotation also but in my case below :
@Composable fun Test(modifier: Modifier = Modifier) { Text(text = testMessage()) } @Composable @ReadOnlyComposable fun testMessage(modifier: Modifier = Modifier) : String { return "Hi" }In here Test is composable but not have ReadOnlyComposable why this is able to call my ReadOnlyComposable ?