FIR checker: report VAL_REASSIGNMENT_VIA_BACKING_FIELD(_ERROR)

This commit is contained in:
Jinseong Jeon
2021-03-15 23:14:00 +03:00
committed by Mikhail Glukhikh
parent a6d11b8914
commit 93289aa899
19 changed files with 149 additions and 62 deletions
@@ -1,7 +0,0 @@
// !LANGUAGE: +RestrictionOfValReassignmentViaBackingField
val my: Int = 1
get() {
field++
return field
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +RestrictionOfValReassignmentViaBackingField
val my: Int = 1
@@ -1,7 +0,0 @@
// !LANGUAGE: -RestrictionOfValReassignmentViaBackingField
val my: Int = 1
get() {
field++
return field
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: -RestrictionOfValReassignmentViaBackingField
val my: Int = 1
@@ -0,0 +1,35 @@
// FIR_IDENTICAL
// !LANGUAGE: +RestrictionOfValReassignmentViaBackingField
class Outer {
val i: Int = 1
get() {
class Inner {
var i: Int = 2
get() {
field++
return field
}
val j: Int = 3
get() {
<!VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR!>field<!> = 42
return field
}
fun innerMember() {
<!VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR!>field<!>++
}
}
return field
}
val j: Int = 4
get() {
fun local() {
<!VAL_REASSIGNMENT_VIA_BACKING_FIELD_ERROR!>field<!>++
field++
}
local()
return field
}
}
@@ -0,0 +1,10 @@
package
public final class Outer {
public constructor Outer()
public final val i: kotlin.Int = 1
public final val j: kotlin.Int = 4
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}