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:
Alexey Andreev
2017-07-18 16:42:30 +03:00
parent ae509d5980
commit 37fa45dc34
63 changed files with 959 additions and 264 deletions
+11 -1
View File
@@ -9,5 +9,15 @@ fun box(): String {
assertEquals(false, 'A'== 'B')
assertEquals(false, ('A' as Any) == (65 as Any))
assertTrue(bar('Q'))
assertFalse(bar('W'))
assertTrue(baz('Q'))
assertFalse(baz('W'))
return "OK"
}
}
fun bar(x: Char) = x.equals('Q')
fun baz(x: Any) = x.equals('Q')