package foo.bar fun Int.f0(s: S): S { return s } fun Int.f1(s: S): C0? { return null } open class C0 {} class C1(val t: T) : C0() { fun f1(t: T) {} fun f2(u: U): C1 { return C1(u) } } class C2() { fun

f4(p: P) {} } fun m() { val c1 = C1(1) c1.f1(2) val x1 = c1.f2("") val c2 = C1("") c2.f1("a") val x2 = c2.f2(3) val c3 = C2() c3.f4(5) val c4: C0<*> = C0() }