JS: don't optimize RTTI when possible, i.e. don't remove is and as when object is known at compile time to have type in RHS of expression. Substitute kotlin.Any with Object. Fix #KT-7665, #KT-7664

This commit is contained in:
Alexey Andreev
2016-09-09 16:43:31 +03:00
parent c581ec6dd6
commit 66c78be10f
14 changed files with 71 additions and 74 deletions
@@ -1,28 +0,0 @@
package foo
// CHECK_NOT_CALLED_IN_SCOPE: scope=box function=isType
open class A()
class B() : A()
fun box(): String {
assertTrue(B() is A)
assertTrue(B() is A?)
assertTrue(B() is B)
assertTrue(B() is B?)
assertTrue((B() as B?) is A?)
assertTrue((null as A?) is A?)
assertNotEquals(null, B() as? A)
assertNotEquals(null, B() as? A?)
assertNotEquals(null, B() as? B)
assertNotEquals(null, B() as? B?)
assertNotEquals(null, B() as A)
assertNotEquals(null, B() as A?)
assertNotEquals(null, B() as B)
assertNotEquals(null, B() as B?)
return "OK"
}