damian
08/17/2018, 9:13 PMType parameter T is declared as 'in' but occurs in 'out' position on type A<T>
on B.bar
, which doesn't seem to make sense... T
has in
variance on A<T>
. It works if make T
invariant on B<T>
(or use @UnsafeVariance
) but I would like to have in
on T
for both A
and B
🤔
interface A<in T : Any> {
fun foo(value: T)
}
interface B<in T : Any> {
fun bar(t: T, a: A<T>) // <- here
}
Played around with some sample situations/hierarchies and it's led me to believe the error is wrong, but...