FIR checker: refactor VAL_REASSIGNMENT checker
This commit is contained in:
committed by
TeamCityServer
parent
338503a4ae
commit
2486555208
+1
-1
@@ -52,7 +52,7 @@ object CommonExpressionCheckers : ExpressionCheckers() {
|
|||||||
|
|
||||||
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker>
|
override val variableAssignmentCheckers: Set<FirVariableAssignmentChecker>
|
||||||
get() = setOf(
|
get() = setOf(
|
||||||
FirValReassignmentViaBackingFieldChecker,
|
FirValReassignmentChecker,
|
||||||
FirAssignmentTypeMismatchChecker
|
FirAssignmentTypeMismatchChecker
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+9
-1
@@ -16,8 +16,16 @@ import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
|||||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
|
import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
|
||||||
|
|
||||||
object FirValReassignmentViaBackingFieldChecker : FirVariableAssignmentChecker() {
|
object FirValReassignmentChecker : FirVariableAssignmentChecker() {
|
||||||
override fun check(expression: FirVariableAssignment, context: CheckerContext, reporter: DiagnosticReporter) {
|
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 backingFieldReference = expression.lValue as? FirBackingFieldReference ?: return
|
||||||
val property = backingFieldReference.resolvedSymbol.fir
|
val property = backingFieldReference.resolvedSymbol.fir
|
||||||
if (property.isVar) return
|
if (property.isVar) return
|
||||||
Reference in New Issue
Block a user