83845fbab5
If an intersection override overrides members A.x, B.x and C.x and B <: A, then A.x is subsumed by B.x, and we don't add it to the list of overridden members. This fixes a false-positive MANY_IMPL_MEMBER_NOT_ IMPLEMENTED where an implementation is subsumed by an abstract override. ^KT-57092 Fixed
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
|