Files
kotlin-fork/compiler/testData/codegen/box/bridges/test6.kt
T
2024-02-26 13:38:49 +00:00

41 lines
805 B
Kotlin
Vendored

/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the LICENSE file.
*/
// WITH_STDLIB
import kotlin.test.*
// vtable call + interface call
interface Z {
fun foo(): Any
}
interface Y {
fun foo(): Int
}
open class A {
open fun foo(): Any = "A"
}
open class C : A() {
override fun foo(): Int = 42
}
open class D: C(), Y, Z
fun box(): String {
val d = D()
val y: Y = d
val z: Z = d
val c: C = d
val a: A = d
if (d.foo().toString() != "42") return "FAIL 1"
if (y.foo().toString() != "42") return "FAIL 2"
if (z.foo().toString() != "42") return "FAIL 3"
if (c.foo().toString() != "42") return "FAIL 4"
if (a.foo().toString() != "42") return "FAIL 5"
return "OK"
}