| package testing | |
| interface I<T> { | |
| fun <caret>f(): T { | |
| } | |
| } | |
| class A<T> : I<T> | |
| class B<T> : I<T> { | |
| override fun f(): T { | |
| } | |
| } | |
| class C<T> : I<T> | |
| interface II<T>: I<T> | |
| interface III<T>: I<T> { | |
| override fun f(): T { | |
| } | |
| } | |
| class A1<T>(i: I<T>) : I<T> by i | |
| class B1<T>(i: I<T>) : I<T> by i { | |
| override fun f(): T { | |
| } | |
| } | |
| class C1<T>(i: I<T>) : I<T> by i | |
| // REF: (in testing.B).f() | |
| // REF: (in testing.B1).f() | |
| // REF: (in testing.III).f() | |