Preliminary: support smart casts on variables in closures
No feature support yet So #KT-14486 In Progress
This commit is contained in:
Vendored
+60
@@ -0,0 +1,60 @@
|
||||
// !LANGUAGE: +CapturedInClosureSmartCasts
|
||||
|
||||
fun run(f: () -> Unit) = f()
|
||||
|
||||
fun foo(s: String?) {
|
||||
var x: String? = null
|
||||
if (s != null) {
|
||||
x = s
|
||||
}
|
||||
if (x != null) {
|
||||
run {
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.hashCode()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun bar(s: String?) {
|
||||
var x = s
|
||||
if (x != null) {
|
||||
run {
|
||||
<!DEBUG_INFO_SMARTCAST!>x<!>.hashCode()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun baz(s: String?) {
|
||||
var x = s
|
||||
if (x != null) {
|
||||
run {
|
||||
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
|
||||
}
|
||||
run {
|
||||
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
|
||||
x = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun gaz(s: String?) {
|
||||
var x = s
|
||||
if (x != null) {
|
||||
run {
|
||||
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
|
||||
x = null
|
||||
}
|
||||
run {
|
||||
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun gav(s: String?) {
|
||||
var x = s
|
||||
if (x != null) {
|
||||
run {
|
||||
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
|
||||
}
|
||||
x = null
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user