From f7af868d4f391fecb0072d69903882e0c6ce1c9a Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Wed, 24 Jun 2015 17:52:14 +0300 Subject: [PATCH] JS/RTTI: added another cast to reified test --- .../js/test/semantics/CastTestGenerated.java | 12 +++++++++--- ...iedToNullable.kt => reifiedToNullable1.kt} | 0 .../cast/cases/reifiedToNullable2.kt | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) rename js/js.translator/testData/expression/cast/cases/{reifiedToNullable.kt => reifiedToNullable1.kt} (100%) create mode 100644 js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CastTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CastTestGenerated.java index 2b97c66b400..a7181de3232 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CastTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/CastTestGenerated.java @@ -83,9 +83,15 @@ public class CastTestGenerated extends AbstractCastTest { doTest(fileName); } - @TestMetadata("reifiedToNullable.kt") - public void testReifiedToNullable() throws Exception { - String fileName = JetTestUtils.navigationMetadata("js/js.translator/testData/expression/cast/cases/reifiedToNullable.kt"); + @TestMetadata("reifiedToNullable1.kt") + public void testReifiedToNullable1() throws Exception { + 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); } diff --git a/js/js.translator/testData/expression/cast/cases/reifiedToNullable.kt b/js/js.translator/testData/expression/cast/cases/reifiedToNullable1.kt similarity index 100% rename from js/js.translator/testData/expression/cast/cases/reifiedToNullable.kt rename to js/js.translator/testData/expression/cast/cases/reifiedToNullable1.kt diff --git a/js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt b/js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt new file mode 100644 index 00000000000..5455eff71dc --- /dev/null +++ b/js/js.translator/testData/expression/cast/cases/reifiedToNullable2.kt @@ -0,0 +1,19 @@ +package foo + +interface A + +class AImpl : A {} + +inline +fun test(x: Any?): T? = x as T? + +fun box(): String { + var a: A? = AImpl() + assertEquals(a, test(a), "a = AImpl()") + a = object : A {} + assertEquals(a, test(a), "a = object : A{}") + assertEquals(null, test(null), "test(null)") + failsClassCast("test(object{})") { test(object{}) } + + return "OK" +} \ No newline at end of file