Iterative call chain handling to get rid of JetTypeInfoInsideCallChain and other nasty things #KT-9754 Fixed
This commit is contained in:
@@ -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()
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
public fun test(/*0*/ your: Your?): kotlin.Unit
|
||||
public fun Your.foo(): kotlin.Any
|
||||
public fun </*0*/ T> T?.let(/*0*/ f: (T) -> kotlin.Unit): kotlin.Unit
|
||||
|
||||
public final class Your {
|
||||
public constructor Your()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user