K2: repeat K1 behavior around multiple inheritance by delegation
#KT-56720 Fixed
This commit is contained in:
committed by
Space Team
parent
ab883d91c8
commit
45e78455b2
Vendored
-19
@@ -1,19 +0,0 @@
|
||||
// FILE: A.java
|
||||
|
||||
public interface A {
|
||||
default void foo() {}
|
||||
}
|
||||
|
||||
// FILE: B.java
|
||||
|
||||
public interface B extends A
|
||||
|
||||
// FILE: C.java
|
||||
|
||||
public interface C extends A
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class Adapter : B, C
|
||||
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class D<!>(val adapter: Adapter) : B by adapter, C by adapter
|
||||
+11
-2
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: A.java
|
||||
|
||||
public interface A {
|
||||
@@ -6,14 +7,22 @@ public interface A {
|
||||
|
||||
// FILE: B.java
|
||||
|
||||
public interface B extends A
|
||||
public interface B extends A {}
|
||||
|
||||
// FILE: C.java
|
||||
|
||||
public interface C extends A
|
||||
public interface C extends A {}
|
||||
|
||||
// FILE: CK.kt
|
||||
|
||||
interface CK : A
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class Adapter : B, C
|
||||
|
||||
class D(val adapter: Adapter) : B by adapter, C by adapter
|
||||
class E(val b: B, val c: C) : B by b, C by c
|
||||
|
||||
class AdapterK : B, CK
|
||||
class F(val adapter: AdapterK) : B by adapter, CK by adapter
|
||||
|
||||
Vendored
+8
@@ -5,6 +5,10 @@ interface A {
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
// FILE: BJ.java
|
||||
|
||||
public interface BJ extends A {}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
interface B : A
|
||||
@@ -18,3 +22,7 @@ interface C : A
|
||||
class Adapter : B, C
|
||||
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class D<!>(val adapter: Adapter) : B by adapter, C by adapter
|
||||
|
||||
class AdapterJ : BJ, C
|
||||
|
||||
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED!>class DJ<!>(val adapter: AdapterJ) : BJ by adapter, C by adapter
|
||||
|
||||
Reference in New Issue
Block a user