[FIR] Add test with abstract / non-abstract ambiguity
This commit is contained in:
@@ -1,10 +1,14 @@
|
|||||||
interface A {
|
interface A {
|
||||||
fun bar() {}
|
fun bar() {}
|
||||||
|
|
||||||
|
fun baz()
|
||||||
}
|
}
|
||||||
open class B {
|
open class B {
|
||||||
open fun foo() {}
|
open fun foo() {}
|
||||||
|
|
||||||
open fun bar() {}
|
open fun bar() {}
|
||||||
|
|
||||||
|
open fun baz() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
class C : A, B() {
|
class C : A, B() {
|
||||||
@@ -12,5 +16,8 @@ class C : A, B() {
|
|||||||
super.foo()
|
super.foo()
|
||||||
|
|
||||||
super.<!AMBIGUITY!>bar<!>() // should be ambiguity (NB: really we should have overridden bar in C)
|
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 open fun bar(): R|kotlin/Unit| {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract fun baz(): R|kotlin/Unit|
|
||||||
|
|
||||||
}
|
}
|
||||||
public open class B : R|kotlin/Any| {
|
public open class B : R|kotlin/Any| {
|
||||||
public constructor(): R|B| {
|
public constructor(): R|B| {
|
||||||
@@ -15,6 +17,9 @@ FILE: incorrectSuperCall.kt
|
|||||||
public open fun bar(): R|kotlin/Unit| {
|
public open fun bar(): R|kotlin/Unit| {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public open fun baz(): R|kotlin/Unit| {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public final class C : R|A|, R|B| {
|
public final class C : R|A|, R|B| {
|
||||||
public constructor(): R|C| {
|
public constructor(): R|C| {
|
||||||
@@ -24,6 +29,8 @@ FILE: incorrectSuperCall.kt
|
|||||||
public final override fun foo(): R|kotlin/Unit| {
|
public final override fun foo(): R|kotlin/Unit| {
|
||||||
super<R|A|R|B|>.R|/B.foo|()
|
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: bar, [/A.bar, /B.bar]>#()
|
||||||
|
super<R|A|R|B|>.<Ambiguity: baz, [/A.baz, /B.baz]>#()
|
||||||
|
this@R|/C|.R|/A.baz|()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user