Files
kotlin-fork/compiler/testData/diagnostics/tests/controlFlowAnalysis/kt2845.kt
T
Mikhail Glukhikh d5aed62410 Smart casts for local variables not captured in a closure and not changed in a loop, see #KT-3175.
isLocalVariable added. Assignment / initialization analysis.
Control whether a variable is changed in a loop at the beginning and at the end of the loop.
Control whether a variable is captured in a closure. #KT-3175  Fixed. #KT-2266  Fixed.
Tests for variable null safety and for variables is/as operations.
Loop / closure / variable property tests are included.
Old tests changed in accordance with KT-3175. In particular, all three of testSmartcastImpossible were fixed.
2015-04-16 20:10:58 +03:00

19 lines
442 B
Kotlin
Vendored

//KT-2845 Wrong cf-analysys for variable initialization in try..finally
package h
import java.util.ArrayList
private fun doTest() : Int {
var list : MutableList<Int>? ;
try {
list = ArrayList()
// Not-null was just assigned to the list
<!DEBUG_INFO_SMARTCAST!>list<!>.add(3)
return 0 ;
}
finally {
if(<!UNINITIALIZED_VARIABLE!>list<!> != null) { // Must be an ERROR
}
}
}