Drop traits with required classes
#KT-4771 Rejected
This commit is contained in:
@@ -2,8 +2,6 @@ open class A {
|
||||
open fun foo(): Any = "A"
|
||||
}
|
||||
|
||||
interface B : A
|
||||
|
||||
open class C : A() {
|
||||
override fun foo(): Int = 222
|
||||
}
|
||||
@@ -12,14 +10,13 @@ interface D {
|
||||
fun foo(): Number
|
||||
}
|
||||
|
||||
class E : B, C(), D
|
||||
class E : C(), D
|
||||
|
||||
fun box(): String {
|
||||
val e = E()
|
||||
if (e.foo() != 222) return "Fail 1"
|
||||
if ((e : D).foo() != 222) return "Fail 2"
|
||||
if ((e : C).foo() != 222) return "Fail 3"
|
||||
if ((e : B).foo() != 222) return "Fail 4"
|
||||
if ((e : A).foo() != 222) return "Fail 5"
|
||||
if ((e : A).foo() != 222) return "Fail 4"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
abstract class A {
|
||||
abstract fun foo(): Any
|
||||
}
|
||||
|
||||
interface B {
|
||||
fun foo(): String = "B"
|
||||
}
|
||||
|
||||
interface C : A, B
|
||||
|
||||
class D : A(), C
|
||||
|
||||
fun box(): String {
|
||||
val d = D()
|
||||
val r = d.foo() + (d : C).foo() + (d : B).foo() + (d : A).foo()
|
||||
return if (r == "BBBB") "OK" else "Fail: $r"
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
open class A {
|
||||
open fun foo(): Any = "A"
|
||||
}
|
||||
|
||||
interface B : A {
|
||||
override fun foo(): String = "B"
|
||||
}
|
||||
|
||||
class C : A(), B
|
||||
|
||||
fun box(): String {
|
||||
val c = C()
|
||||
val r = c.foo() + (c : B).foo() + (c : A).foo()
|
||||
return if (r == "BBB") "OK" else "Fail: $r"
|
||||
}
|
||||
Reference in New Issue
Block a user