8184bccda1
A local descendant of JetTypeInfo added to save separately current data flow info and jump point data flow info together with jump opportunity. Now data flow analysis know about loop bodies that must be executed at least once (do...while, while(true) until the first break/continue). A set of tests for smart casts in and after loops. Existing DoWhile and WhileTrue resolve tests corrected in accordance.
15 lines
415 B
Kotlin
Vendored
15 lines
415 B
Kotlin
Vendored
public fun foo(x: String?, y: String?): Int {
|
|
do {
|
|
// After the check, smart cast should work
|
|
if (x != null) {
|
|
if (x == "abc") break
|
|
y!!.length()
|
|
} else {
|
|
y!!.length()
|
|
}
|
|
// y!! in both branches
|
|
<!DEBUG_INFO_SMARTCAST!>y<!>.length()
|
|
} while (true)
|
|
// break is possible before so !! is necessary
|
|
return y!!.length()
|
|
} |