Pitel
07/16/2021, 9:30 AMgildor
07/16/2021, 9:37 AMclass PagedStore<T>(value: T)
But should be
class PagedStore<out T>(value: T)
Dominaezzz
07/16/2021, 9:37 AMDominaezzz
07/16/2021, 9:38 AMpager
?gildor
07/16/2021, 9:38 AMfun pager(store: PagedStore<List<*>>)
Pitel
07/16/2021, 9:39 AMclass PagedStore<T : List<*>>( ... )
Pitel
07/16/2021, 9:40 AMfun RenderContext.pager(pagedStore: PagedStore<List<*>>) { ... }
gildor
07/16/2021, 9:40 AMgildor
07/16/2021, 9:41 AMgildor
07/16/2021, 9:42 AMclass PagedStore<out T : List<*>>(value: T)
Fleshgrinder
07/16/2021, 9:42 AMgildor
07/16/2021, 9:42 AMgildor
07/16/2021, 9:43 AMPitel
07/16/2021, 9:45 AMout
doesn exactly help.gildor
07/16/2021, 9:45 AMgildor
07/16/2021, 9:45 AMPitel
07/16/2021, 9:45 AMgildor
07/16/2021, 9:45 AMgildor
07/16/2021, 9:46 AMgildor
07/16/2021, 9:46 AMgildor
07/16/2021, 9:47 AMgildor
07/16/2021, 9:50 AMout
to be covariant, but also it still has unsafe invarience (but it safe for cases where it used):
public operator fun contains(element: @UnsafeVariance E): Boolean
Pitel
07/16/2021, 9:50 AMgildor
07/16/2021, 10:16 AMgildor
07/16/2021, 10:17 AMfun pager(store: PagedStore<out List<*>>)
So it will be possible to pass any List there, but you still have to do unsafe cast inside (though, it will not be unsafe)