Iterative call chain handling to get rid of JetTypeInfoInsideCallChain and other nasty things #KT-9754 Fixed

This commit is contained in:
Mikhail Glukhikh
2015-10-26 17:33:10 +03:00
parent 16b6bccd1e
commit d2c65a5336
6 changed files with 152 additions and 112 deletions
@@ -0,0 +1,13 @@
class Your
fun Your.foo() = Any()
fun <T> T?.let(f: (T) -> Unit) {
if (this != null) f(<!DEBUG_INFO_SMARTCAST!>this<!>)
}
fun test(your: Your?) {
(your?.foo() as? Any)?.let {}
// strange smart cast to 'Your' at this point
your<!UNSAFE_CALL!>.<!>hashCode()
}