Skip to content

Commit 45a585e

Browse files
committed
Change order of keyInScopeResolver parameters to solve compiler ambiguity
1 parent aded6f9 commit 45a585e

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

resaca/api/resaca.klib.api

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,10 @@ final fun com.sebaslogen.resaca/com_sebaslogen_resaca_ScopedViewModelOwner$stabl
100100
final fun com.sebaslogen.resaca/com_sebaslogen_resaca_ScopedViewModelProvider$stableprop_getter(): kotlin/Int // com.sebaslogen.resaca/com_sebaslogen_resaca_ScopedViewModelProvider$stableprop_getter|com_sebaslogen_resaca_ScopedViewModelProvider$stableprop_getter(){}[0]
101101
final fun com.sebaslogen.resaca/com_sebaslogen_resaca_ScopedViewModelUtils$stableprop_getter(): kotlin/Int // com.sebaslogen.resaca/com_sebaslogen_resaca_ScopedViewModelUtils$stableprop_getter|com_sebaslogen_resaca_ScopedViewModelUtils$stableprop_getter(){}[0]
102102
final fun com.sebaslogen.resaca/generateKeysAndObserveLifecycle(kotlin/Any?, androidx.compose.runtime/Composer?, kotlin/Int): kotlin/Triple<com.sebaslogen.resaca/ScopedViewModelContainer, com.sebaslogen.resaca/ScopedViewModelContainer.InternalKey, com.sebaslogen.resaca/ScopedViewModelContainer.ExternalKey> // com.sebaslogen.resaca/generateKeysAndObserveLifecycle|generateKeysAndObserveLifecycle(kotlin.Any?;androidx.compose.runtime.Composer?;kotlin.Int){}[0]
103-
final inline fun <#A: reified androidx.lifecycle/ViewModel, #B: kotlin/Any> com.sebaslogen.resaca/viewModelScoped(#B, noinline kotlin/Function1<#B, kotlin/Boolean>, androidx.compose.runtime/Composer?, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(0:1;kotlin.Function1<0:1,kotlin.Boolean>;androidx.compose.runtime.Composer?;kotlin.Int){0§<androidx.lifecycle.ViewModel>;1§<kotlin.Any>}[0]
104103
final inline fun <#A: reified androidx.lifecycle/ViewModel, #B: kotlin/Any> com.sebaslogen.resaca/viewModelScoped(#B, noinline kotlin/Function1<#B, kotlin/Boolean>, androidx.core.bundle/Bundle, androidx.compose.runtime/Composer?, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(0:1;kotlin.Function1<0:1,kotlin.Boolean>;androidx.core.bundle.Bundle;androidx.compose.runtime.Composer?;kotlin.Int){0§<androidx.lifecycle.ViewModel>;1§<kotlin.Any>}[0]
105104
final inline fun <#A: reified androidx.lifecycle/ViewModel, #B: kotlin/Any> com.sebaslogen.resaca/viewModelScoped(#B, noinline kotlin/Function1<#B, kotlin/Boolean>, androidx.core.bundle/Bundle, noinline kotlin/Function1<androidx.lifecycle/SavedStateHandle, #A>, androidx.compose.runtime/Composer?, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(0:1;kotlin.Function1<0:1,kotlin.Boolean>;androidx.core.bundle.Bundle;kotlin.Function1<androidx.lifecycle.SavedStateHandle,0:0>;androidx.compose.runtime.Composer?;kotlin.Int){0§<androidx.lifecycle.ViewModel>;1§<kotlin.Any>}[0]
106105
final inline fun <#A: reified androidx.lifecycle/ViewModel, #B: kotlin/Any> com.sebaslogen.resaca/viewModelScoped(#B, noinline kotlin/Function1<#B, kotlin/Boolean>, noinline kotlin/Function1<androidx.lifecycle/SavedStateHandle, #A>, androidx.compose.runtime/Composer?, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(0:1;kotlin.Function1<0:1,kotlin.Boolean>;kotlin.Function1<androidx.lifecycle.SavedStateHandle,0:0>;androidx.compose.runtime.Composer?;kotlin.Int){0§<androidx.lifecycle.ViewModel>;1§<kotlin.Any>}[0]
106+
final inline fun <#A: reified androidx.lifecycle/ViewModel, #B: kotlin/Any> com.sebaslogen.resaca/viewModelScoped(noinline kotlin/Function1<#B, kotlin/Boolean>, #B, androidx.compose.runtime/Composer?, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(kotlin.Function1<0:1,kotlin.Boolean>;0:1;androidx.compose.runtime.Composer?;kotlin.Int){0§<androidx.lifecycle.ViewModel>;1§<kotlin.Any>}[0]
107107
final inline fun <#A: reified androidx.lifecycle/ViewModel> com.sebaslogen.resaca/viewModelScoped(kotlin/Any?, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(kotlin.Any?;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§<androidx.lifecycle.ViewModel>}[0]
108108
final inline fun <#A: reified androidx.lifecycle/ViewModel> com.sebaslogen.resaca/viewModelScoped(kotlin/Any?, androidx.core.bundle/Bundle, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(kotlin.Any?;androidx.core.bundle.Bundle;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§<androidx.lifecycle.ViewModel>}[0]
109109
final inline fun <#A: reified androidx.lifecycle/ViewModel> com.sebaslogen.resaca/viewModelScoped(kotlin/Any?, androidx.core.bundle/Bundle, noinline kotlin/Function1<androidx.lifecycle/SavedStateHandle, #A>, androidx.compose.runtime/Composer?, kotlin/Int, kotlin/Int): #A // com.sebaslogen.resaca/viewModelScoped|viewModelScoped(kotlin.Any?;androidx.core.bundle.Bundle;kotlin.Function1<androidx.lifecycle.SavedStateHandle,0:0>;androidx.compose.runtime.Composer?;kotlin.Int;kotlin.Int){0§<androidx.lifecycle.ViewModel>}[0]

resaca/src/commonMain/kotlin/com/sebaslogen/resaca/ScopedMemoizers.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ public inline fun <reified T : ViewModel, K : Any> viewModelScoped(
100100
val scopeKeyWithResolver: ScopeKeyWithResolver<K> = remember(key, keyInScopeResolver) { ScopeKeyWithResolver(key, keyInScopeResolver) }
101101
return viewModelScoped(key = scopeKeyWithResolver, defaultArguments = defaultArguments)
102102
}
103+
103104
/**
104105
* Return a [ViewModel] provided by the default [ViewModelProvider.Factory] and a [ViewModelProvider].
105106
* The [ViewModel] will be kept in memory for as long as needed, and until the requester Composable is permanently gone
@@ -120,8 +121,8 @@ public inline fun <reified T : ViewModel, K : Any> viewModelScoped(
120121
*/
121122
@Composable
122123
public inline fun <reified T : ViewModel, K : Any> viewModelScoped(
123-
key: K,
124124
noinline keyInScopeResolver: KeyInScopeResolver<K>,
125+
key: K,
125126
): T {
126127
val scopeKeyWithResolver: ScopeKeyWithResolver<K> = remember(key, keyInScopeResolver) { ScopeKeyWithResolver(key, keyInScopeResolver) }
127128
return viewModelScoped(key = scopeKeyWithResolver, defaultArguments = Bundle())

sample/src/main/java/com/sebaslogen/resacaapp/sample/ui/main/compose/examples/SimpleViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import com.sebaslogen.resacaapp.sample.ui.main.data.FakeScopedViewModel
1414
* In this case the [SavedStateHandle] required by [FakeScopedViewModel] will be provided by the default [SavedStateViewModelFactory]
1515
*/
1616
@Composable
17-
fun DemoScopedViewModelComposable(key: String? = null) {
18-
val fakeScopedVM: FakeScopedViewModel = viewModelScoped(key = key) { FakeScopedViewModel(stateSaver = it, viewModelId = 0) }
17+
fun DemoScopedViewModelComposable(key: String = "myScopedViewModel") {
18+
val fakeScopedVM: FakeScopedViewModel = viewModelScoped(key) { FakeScopedViewModel(stateSaver = it, viewModelId = 0) }
1919
DemoComposable(inputObject = fakeScopedVM, objectType = "FakeScopedViewModel", scoped = true)
2020
}

0 commit comments

Comments
 (0)