FIR checker: refactor VAL_REASSIGNMENT checker

This commit is contained in:
Jinseong Jeon
2021-04-26 00:25:03 -07:00
committed by TeamCityServer
parent 338503a4ae
commit 2486555208
2 changed files with 10 additions and 2 deletions
@@ -52,7 +52,7 @@ object CommonExpressionCheckers : ExpressionCheckers() {
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker>
get() = setOf(
FirValReassignmentViaBackingFieldChecker,
FirValReassignmentChecker,
FirAssignmentTypeMismatchChecker
)
@@ -16,8 +16,16 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
object FirValReassignmentViaBackingFieldChecker : FirVariableAssignmentChecker() {
object FirValReassignmentChecker : FirVariableAssignmentChecker() {
override fun check(expression: FirVariableAssignment, context: CheckerContext, reporter: DiagnosticReporter) {
checkValReassignmentViaBackingField(expression, context, reporter)
}
private fun checkValReassignmentViaBackingField(
expression: FirVariableAssignment,
context: CheckerContext,
reporter: DiagnosticReporter
) {
val backingFieldReference = expression.lValue as? FirBackingFieldReference ?: return
val property = backingFieldReference.resolvedSymbol.fir
if (property.isVar) return