4b35e3b135
Predictability estimation algorithm is completely new, but backward compatibility should present. A large set of tests. Some updated tests. Smart casts allowed for captured variables if they are not modified in closure #KT-9051 Fixed Also #KT-8643 Fixed Also #KT-7976 Fixed Correct handling of lambda arguments in functions #KT-9143 Fixed
23 lines
545 B
Kotlin
Vendored
23 lines
545 B
Kotlin
Vendored
class My {
|
|
|
|
val y: Int
|
|
get() {
|
|
var x: Int?
|
|
x = 3
|
|
return <!DEBUG_INFO_SMARTCAST!>x<!>.hashCode()
|
|
}
|
|
|
|
fun test() {
|
|
var x: Int?
|
|
x = 2
|
|
<!DEBUG_INFO_SMARTCAST!>x<!>.hashCode()
|
|
fun bb() {
|
|
var <!NAME_SHADOWING!>x<!>: Any?
|
|
x = 4
|
|
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
|
|
}
|
|
x = 4
|
|
// Really smart cast is possible but name shadowing by bb() prevents it
|
|
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
|
|
}
|
|
} |