JS/RTTI: avoid possible side-effect for is-check on nullable type

#KT-7038 fixed
This commit is contained in:
Alexey Tsvetkov
2015-06-10 16:49:46 +03:00
committed by Alexey Andreev
parent c6cf6a0df7
commit 5fdede74a3
4 changed files with 66 additions and 6 deletions
@@ -0,0 +1,21 @@
package foo
var counter = 0
class A {
fun getCounter(): Any? =
when (counter++) {
0 -> "0"
1 -> null
else -> counter
}
}
fun box(): String {
assertEquals(false, A().getCounter() is Int?, "(1)")
assertEquals(true, A().getCounter() is Int?, "(2)")
assertEquals(true, A().getCounter() is Int?, "(3)")
assertEquals(3, counter)
return "OK"
}
@@ -0,0 +1,22 @@
package foo
var counter = 0
class A {
val x: Any?
get() =
when (counter++) {
0 -> "0"
1 -> null
else -> counter
}
}
fun box(): String {
assertEquals(false, A().x is Int?, "(1)")
assertEquals(true, A().x is Int?, "(2)")
assertEquals(true, A().x is Int?, "(3)")
assertEquals(3, counter)
return "OK"
}