From 24865552081eb7738bac73a91d4bd3bc0c339bef Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Mon, 26 Apr 2021 00:25:03 -0700 Subject: [PATCH] FIR checker: refactor VAL_REASSIGNMENT checker --- .../fir/analysis/checkers/CommonExpressionCheckers.kt | 2 +- ...ingFieldChecker.kt => FirValReassignmentChecker.kt} | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) rename compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/{FirValReassignmentViaBackingFieldChecker.kt => FirValReassignmentChecker.kt} (84%) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/CommonExpressionCheckers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/CommonExpressionCheckers.kt index 33cb7ca3d70..a1d6c75ed4c 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/CommonExpressionCheckers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/CommonExpressionCheckers.kt @@ -52,7 +52,7 @@ object CommonExpressionCheckers : ExpressionCheckers() { override val variableAssignmentCheckers: Set get() = setOf( - FirValReassignmentViaBackingFieldChecker, + FirValReassignmentChecker, FirAssignmentTypeMismatchChecker ) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentViaBackingFieldChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentChecker.kt similarity index 84% rename from compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentViaBackingFieldChecker.kt rename to compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentChecker.kt index fb36f22520c..fd63dcf3248 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentViaBackingFieldChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirValReassignmentChecker.kt @@ -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