FIR: use only most specific members when building intersection
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.
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
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
|
||||
<!MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED!>class Z<!> : B, C, D
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
interface A {
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user