| class C<out T : Any?> : B<T> { |
| constructor() /* primary */ { |
| super/*Any*/() |
| /* <init>() */ |
| |
| } |
| |
| } |
| |
| open class DelegatedB : B<String> { |
| private /* final field */ val $$delegate_0: C<String> = C<String>() |
| constructor() /* primary */ { |
| super/*Any*/() |
| /* <init>() */ |
| |
| } |
| |
| override operator fun invoke() { |
| <this>.#$$delegate_0.invoke() |
| } |
| |
| override operator fun invoke(value: String) { |
| <this>.#$$delegate_0.invoke(value = value) |
| } |
| |
| } |
| |
| interface A { |
| operator fun invoke() { |
| } |
| |
| operator fun invoke(value: String) { |
| return <this>.bar(value = value) |
| } |
| |
| } |
| |
| interface B<out T : Any?> : A { |
| } |
| |
| fun A.bar(value: String) { |
| } |
| |
| fun foo() { |
| return DelegatedB().invoke() |
| } |
| |