852475337b
In this commit we drop less concrete members in intersection. See for example change in test data: before the commit, we intersected all three A.foo, B.foo and C.foo in diamond hierarchy. After the commit we drop A.foo and intersect B.foo and C.foo only.
18 lines
272 B
Kotlin
Vendored
18 lines
272 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
interface A {
|
|
fun foo() {}
|
|
}
|
|
|
|
interface B : A {
|
|
abstract override fun foo()
|
|
}
|
|
|
|
interface C : A {
|
|
abstract override fun foo()
|
|
}
|
|
|
|
interface D : A
|
|
|
|
// Fake override Z#foo should be abstract
|
|
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class Z<!> : B, C, D
|