Added tests on bridges

This commit is contained in:
Igor Chevdar
2017-02-21 17:14:13 +03:00
parent 7fa44ebc0d
commit 4835aa3e74
4 changed files with 118 additions and 0 deletions
@@ -0,0 +1,35 @@
// non-generic interface, generic impl, vtable call + interface call
open class A<T> {
open var size: T = 56 as T
}
interface C {
var size: Int
}
open class B : C, A<Int>()
open class D: B() {
override var size: Int = 117
}
fun <T> foo(a: A<T>) {
a.size = 42 as T
}
fun box(): String {
val b = B()
foo(b)
if (b.size != 42) return "fail 1"
val d = D()
if (d.size != 117) return "fail 2"
foo(d)
if (d.size != 42) return "fail 3"
return "OK"
}
fun main(args: Array<String>) {
println(box())
}