JS/RTTI: support unsafe casts

#KT-2670 fixed
This commit is contained in:
Alexey Tsvetkov
2015-06-11 15:31:54 +03:00
committed by Alexey Andreev
parent 1d2da9729e
commit 3fd387d4a6
17 changed files with 196 additions and 83 deletions
@@ -0,0 +1,21 @@
package foo
// CHECK_NOT_CALLED: test
trait A
class AImpl: A
inline
fun test<reified T>(x: Any?): T = x as T
fun box(): String {
var a: A = AImpl()
assertEquals(a, test<A>(a), "a = AImpl()")
a = object : A {}
assertEquals(a, test<A>(a), "a = object : A{}")
failsClassCast("test(null)") { test<A>(null) }
failsClassCast("test(object{})") { test<A>(object{}) }
return "OK"
}