interface IFoo { abstract fun foo(): String } class K1 : JFoo { constructor() /* primary */ { super/*JFoo*/() /* () */ } } class K2 : JFoo { constructor() /* primary */ { super/*JFoo*/() /* () */ } override fun foo(): @FlexibleNullability String { return super.foo() } } class K3 : JUnrelatedFoo, IFoo { constructor() /* primary */ { super/*JUnrelatedFoo*/() /* () */ } } class K4 : JUnrelatedFoo, IFoo { constructor() /* primary */ { super/*JUnrelatedFoo*/() /* () */ } override fun foo(): String? { return super.foo() } } class TestJFoo : IFoo { constructor() /* primary */ { super/*Any*/() /* () */ .#<$$delegate_0> = JFoo() } override fun foo(): String { return .#<$$delegate_0>.foo() } local /* final field */ val <$$delegate_0>: IFoo } class TestK1 : IFoo { constructor() /* primary */ { super/*Any*/() /* () */ .#<$$delegate_0> = K1() } override fun foo(): String { return .#<$$delegate_0>.foo() } local /* final field */ val <$$delegate_0>: IFoo } class TestK2 : IFoo { constructor() /* primary */ { super/*Any*/() /* () */ .#<$$delegate_0> = K2() } override fun foo(): String { return .#<$$delegate_0>.foo() } local /* final field */ val <$$delegate_0>: IFoo } class TestK3 : IFoo { constructor() /* primary */ { super/*Any*/() /* () */ .#<$$delegate_0> = K3() } override fun foo(): String { return .#<$$delegate_0>.foo() } local /* final field */ val <$$delegate_0>: IFoo } class TestK4 : IFoo { constructor() /* primary */ { super/*Any*/() /* () */ .#<$$delegate_0> = K4() } override fun foo(): String { return .#<$$delegate_0>.foo() } local /* final field */ val <$$delegate_0>: IFoo }