[FIR] Discriminate abstract members when resolving on super

This commit is contained in:
Mikhail Glukhikh
2020-02-04 16:06:24 +03:00
parent 8e40782e7b
commit 0fa98ed635
10 changed files with 56 additions and 19 deletions
@@ -22,7 +22,7 @@ interface I {
class B : A(), I {
override val x: Int = 12345
override val y: Int = super.<!AMBIGUITY!>y<!>
override val y: Int = super.y
override fun foo(): Int {
super.foo()
@@ -30,7 +30,7 @@ class B : A(), I {
}
override fun bar() {
super.<!AMBIGUITY!>bar<!>()
super.bar()
}
override fun qux() {
@@ -15,7 +15,7 @@ class Test1 : C(), A {
// Abstract 'foo' defined in 'C' wins against non-abstract 'foo' defined in 'A',
// because 'C' is a subclass of 'A' (and 'C::foo' overrides 'A::foo'),
// even though 'A' is explicitly listed in supertypes list for 'D'.
super.<!AMBIGUITY!>foo<!>()
super.foo()
}
}