blob: 312b33588fd5e93dceb50ae5787b03ae3b3e2f40 [file]
// TARGET_BACKEND: JS_IR
package foo
external interface A {
fun foo(value: Int): String
}
interface B {
fun foo(value: Int): String
}
class C : A, B {
override fun foo(value: Int) = "C.foo($value)"
}
open class D {
open fun foo(value: Int) = "D.foo($value)"
}
class E : D(), A, B
fun box(): String {
val a: A = C()
assertEquals("C.foo(55)", a.foo(55))
val b: B = C()
assertEquals("C.foo(23)", b.foo(23))
val d: dynamic = C()
assertEquals("C.foo(42)", d.foo(42))
val da: A = E()
assertEquals("D.foo(55)", da.foo(55))
val db: B = E()
assertEquals("D.foo(23)", db.foo(23))
val dd: dynamic = E()
assertEquals("D.foo(42)", dd.foo(42))
return "OK"
}