FIR checkers: report VAL_REASSIGNMENT for assignment operators

Currently VAL_REASSIGNMENT are only reported on direct assignments.
Reassignments in the form of, for example, `+=` are reported as
`VARIABLE_EXPECTED`, which differs from FE1.0.
This commit is contained in:
Tianyu Geng
2021-03-30 16:23:39 -07:00
committed by Mikhail Glukhikh
parent b87a943efd
commit fc8d0e3ee0
17 changed files with 57 additions and 38 deletions
@@ -103,7 +103,7 @@ class Test() {
a += 34
(l@ a) += 34
<!VARIABLE_EXPECTED!>b<!> += 34
<!VAL_REASSIGNMENT!>b<!> += 34
a++
(l@ a)++
@@ -113,9 +113,9 @@ class Test() {
fun testVariables1() {
val b: Int = 34
(l@ <!VARIABLE_EXPECTED!>b<!>) += 34
(l@ <!VAL_REASSIGNMENT!>b<!>) += 34
//repeat for b
(<!VARIABLE_EXPECTED!>b<!>) += 3
(<!VAL_REASSIGNMENT!>b<!>) += 3
}
fun testArrays(a: Array<Int>, ab: Ab) {
@@ -89,18 +89,18 @@ fun t3() {
fun t4() {
val x = 1
<!VARIABLE_EXPECTED!>x<!> += 2
<!VAL_REASSIGNMENT!>x<!> += 2
val y = 3
<!VARIABLE_EXPECTED!>y<!> *= 4
<!VAL_REASSIGNMENT!>y<!> *= 4
var z = 5
z -= y
}
fun t5() {
for (i in 0..2) {
<!VARIABLE_EXPECTED!>i<!> += 1
<!VAL_REASSIGNMENT!>i<!> += 1
fun t5() {
<!VARIABLE_EXPECTED!>i<!> += 3
<!VAL_REASSIGNMENT!>i<!> += 3
}
}
}
@@ -213,7 +213,7 @@ class LocalValsVsProperties(val a: Int, w: Int) : Open(a, w) {
var xx = w
var yy : Int
init {
<!VARIABLE_EXPECTED!>w<!> += 1
<!VAL_REASSIGNMENT!>w<!> += 1
yy = w
}
}
@@ -68,16 +68,16 @@ class Test1 {
init {
inlineMe {
<!VARIABLE_EXPECTED!>a<!> += "allowed"
<!VAL_REASSIGNMENT!>a<!> += "allowed"
}
crossinlineMe {
<!VARIABLE_EXPECTED!>b<!> += "not allowed"
<!VAL_REASSIGNMENT!>b<!> += "not allowed"
}
noinlineMe {
<!VARIABLE_EXPECTED!>c<!> += "not allowed"
<!VAL_REASSIGNMENT!>c<!> += "not allowed"
}
notinline {
<!VARIABLE_EXPECTED!>d<!> += "not allowed"
<!VAL_REASSIGNMENT!>d<!> += "not allowed"
}
}
}
@@ -31,7 +31,7 @@ fun box() : String {
if (c1 != 1) {
return "2"
}
<!VARIABLE_EXPECTED!>a<!> *= 3 // a = a * 3, shouldn't be able to do this on val
<!VAL_REASSIGNMENT!>a<!> *= 3 // a = a * 3, shouldn't be able to do this on val
if (c0 != 2) {
return "3"
}