```public object LocalViewModelStoreOwner { pr...
# compose
m
Copy code
public object LocalViewModelStoreOwner {
    private val LocalViewModelStoreOwner =
        compositionLocalWithHostDefaultOf(ViewModelStoreOwnerHostDefaultKey)
    public val current: ViewModelStoreOwner?
        @Composable get() = LocalViewModelStoreOwner.current
    public infix fun provides(
        viewModelStoreOwner: ViewModelStoreOwner
    ): ProvidedValue<ViewModelStoreOwner?> {
        return LocalViewModelStoreOwner.provides(viewModelStoreOwner)
    }
}
Why does it wrap a
ProvidableCompositionLocal<ViewModelStoreOwner?>
to manually reimplement its instance members? A wrapper typically exists to intercept and mediate access, but this
object
relays everything as-is. Thread in Slack Conversation
e
So as not to expose the actual mutable (ie Providable) composition local. (maybe its public for consumption but not for manipulation)