this case is safe because it is really this (same ...
# announcements
a
this case is safe because it is really this (same example I posted before)
Copy code
class Subscriber<in T> {
}

class Observable<out T> {
    public fun get(): T {    return "" as T  } //  faked so compiles

    public fun subscribe(s: Subscriber<T>) {   }
}

public fun foo() {
    val obs = Observable<String>()
    val sub = Subscriber<CharSequence>()

    obs.subscribe(sub)
}