JS/RTTI: fixed double testing for null for reified

This commit is contained in:
Alexey Tsvetkov
2015-06-10 21:39:56 +03:00
committed by Alexey Andreev
parent 5fdede74a3
commit dce0971c52
4 changed files with 79 additions and 14 deletions
+21
View File
@@ -0,0 +1,21 @@
package foo
// CHECK_NOT_CALLED: isTypeOfOrNull
// CHECK_NULLS_COUNT: function=box count=8
inline
fun Any?.isTypeOfOrNull<reified T>() = this is T?
class A
class B
fun box(): String {
assertEquals(true, null.isTypeOfOrNull<A>(), "null.isTypeOfOrNull<A>()")
assertEquals(true, null.isTypeOfOrNull<A?>(), "null.isTypeOfOrNull<A?>()")
assertEquals(true, A().isTypeOfOrNull<A>(), "A().isTypeOfOrNull<A>()")
assertEquals(true, A().isTypeOfOrNull<A?>(), "A().isTypeOfOrNull<A?>()")
assertEquals(false, A().isTypeOfOrNull<B>(), "A().isTypeOfOrNull<B>()")
assertEquals(false, A().isTypeOfOrNull<B?>(), "A().isTypeOfOrNull<B?>()")
return "OK"
}