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,25 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1009
|
||||
class A {
|
||||
operator fun iterator() = B()
|
||||
}
|
||||
|
||||
class B() {
|
||||
private var count = 0
|
||||
|
||||
operator fun next() {
|
||||
count++
|
||||
}
|
||||
|
||||
operator fun hasNext() = count < 5
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var i = 0
|
||||
for (x: Any in A()) {
|
||||
if (x != Unit) return "fail1: $x"
|
||||
i++
|
||||
}
|
||||
if (i != 5) return "fail2: $i"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user