[FIR] Add test with abstract / non-abstract ambiguity

This commit is contained in:
Mikhail Glukhikh
2020-02-04 15:15:45 +03:00
parent f7d658b624
commit 8e40782e7b
2 changed files with 14 additions and 0 deletions
@@ -1,10 +1,14 @@
interface A {
fun bar() {}
fun baz()
}
open class B {
open fun foo() {}
open fun bar() {}
open fun baz() {}
}
class C : A, B() {
@@ -12,5 +16,8 @@ class C : A, B() {
super.foo()
super.<!AMBIGUITY!>bar<!>() // should be ambiguity (NB: really we should have overridden bar in C)
super.<!AMBIGUITY!>baz<!>() // Ok
baz() // Ok
}
}
@@ -3,6 +3,8 @@ FILE: incorrectSuperCall.kt
public open fun bar(): R|kotlin/Unit| {
}
public abstract fun baz(): R|kotlin/Unit|
}
public open class B : R|kotlin/Any| {
public constructor(): R|B| {
@@ -15,6 +17,9 @@ FILE: incorrectSuperCall.kt
public open fun bar(): R|kotlin/Unit| {
}
public open fun baz(): R|kotlin/Unit| {
}
}
public final class C : R|A|, R|B| {
public constructor(): R|C| {
@@ -24,6 +29,8 @@ FILE: incorrectSuperCall.kt
public final override fun foo(): R|kotlin/Unit| {
super<R|A|R|B|>.R|/B.foo|()
super<R|A|R|B|>.<Ambiguity: bar, [/A.bar, /B.bar]>#()
super<R|A|R|B|>.<Ambiguity: baz, [/A.baz, /B.baz]>#()
this@R|/C|.R|/A.baz|()
}
}