d5aed62410
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.
31 lines
751 B
Kotlin
Vendored
31 lines
751 B
Kotlin
Vendored
class A() {
|
|
override fun equals(other : Any?) : Boolean = false
|
|
}
|
|
|
|
fun f(): Unit {
|
|
var x: Int? = <!VARIABLE_WITH_REDUNDANT_INITIALIZER!>1<!>
|
|
x = null
|
|
x <!UNSAFE_INFIX_CALL!>+<!> 1
|
|
x <!UNSAFE_INFIX_CALL!>plus<!> 1
|
|
x <!UNSAFE_INFIX_CALL!><<!> 1
|
|
x <!UNSAFE_INFIX_CALL!>+=<!> 1
|
|
|
|
x == 1
|
|
x != 1
|
|
|
|
<!EQUALITY_NOT_APPLICABLE!>A() == 1<!>
|
|
|
|
<!EQUALITY_NOT_APPLICABLE!>x === "1"<!>
|
|
<!EQUALITY_NOT_APPLICABLE!>x !== "1"<!>
|
|
|
|
x === 1
|
|
x !== 1
|
|
|
|
x<!UNSAFE_INFIX_CALL!>..<!>2
|
|
<!TYPE_MISMATCH!>x<!> in 1..2
|
|
|
|
val y : Boolean? = true
|
|
<!UNUSED_EXPRESSION!>false || <!TYPE_MISMATCH!>y<!><!>
|
|
<!UNUSED_EXPRESSION!><!TYPE_MISMATCH!>y<!> && true<!>
|
|
<!UNUSED_EXPRESSION!><!TYPE_MISMATCH!>y<!> && <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!><!>
|
|
} |