JS/RTTI: support unsafe casts
#KT-2670 fixed
This commit is contained in:
committed by
Alexey Andreev
parent
1d2da9729e
commit
3fd387d4a6
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user