JS/RTTI: added another cast to reified test
This commit is contained in:
committed by
Alexey Andreev
parent
a9d5c74ff7
commit
f7af868d4f
@@ -83,9 +83,15 @@ public class CastTestGenerated extends AbstractCastTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("reifiedToNullable.kt")
|
@TestMetadata("reifiedToNullable1.kt")
|
||||||
public void testReifiedToNullable() throws Exception {
|
public void testReifiedToNullable1() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/reifiedToNullable.kt");
|
String fileName = JetTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/reifiedToNullable1.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("reifiedToNullable2.kt")
|
||||||
|
public void testReifiedToNullable2() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt");
|
||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package foo
|
||||||
|
|
||||||
|
interface 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{}")
|
||||||
|
assertEquals(null, test<A>(null), "test(null)")
|
||||||
|
failsClassCast("test(object{})") { test<A>(object{}) }
|
||||||
|
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user