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.
This commit is contained in:
@@ -10,7 +10,7 @@ internal fun f13(/*0*/ a: A?): kotlin.Unit
|
||||
internal fun f14(/*0*/ a: A?): kotlin.Unit
|
||||
internal fun f15(/*0*/ a: A?): kotlin.Unit
|
||||
internal fun f9(/*0*/ init: A?): kotlin.Unit
|
||||
internal fun foo(/*0*/ aa: kotlin.Any): kotlin.Int
|
||||
internal fun foo(/*0*/ aa: kotlin.Any?): kotlin.Int
|
||||
internal fun getStringLength(/*0*/ obj: kotlin.Any): kotlin.Char?
|
||||
internal fun illegalWhenBlock(/*0*/ a: kotlin.Any): kotlin.Int
|
||||
internal fun illegalWhenBody(/*0*/ a: kotlin.Any): kotlin.Int
|
||||
|
||||
Reference in New Issue
Block a user