Add mechanism for type coercion in JS
Use it for char boxing/unboxing and unit materialization. Possible to use for other purposes, for example, to add type checks to dynamics. See KT-18793, KT-17915, KT-19081, KT-18216, KT-12970, KT-17014, KT-13932, KT-13930
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1005
|
||||
var log = ""
|
||||
|
||||
fun foo() {
|
||||
log += "foo()"
|
||||
}
|
||||
|
||||
fun test(x: Int) = when (x) {
|
||||
in 0..10 -> foo()
|
||||
else -> 55
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = test(20)
|
||||
if (a !is Int) return "fail1: $a"
|
||||
|
||||
val b = test(5)
|
||||
if (b !is Unit) return "fail2: $b"
|
||||
if (log != "foo()") return "fail3: $log"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user