SetterBackingFieldAssignment: minor refactoring
This commit is contained in:
+12
-4
@@ -34,13 +34,17 @@ class SetterBackingFieldAssignmentInspection : AbstractKotlinInspection(), Clean
|
|||||||
if (bodyExpression.anyDescendantOfType<KtExpression> {
|
if (bodyExpression.anyDescendantOfType<KtExpression> {
|
||||||
when (it) {
|
when (it) {
|
||||||
is KtBinaryExpression ->
|
is KtBinaryExpression ->
|
||||||
it.left?.text == KtTokens.FIELD_KEYWORD.value && it.operationToken in assignmentOperators
|
it.left.isBackingFieldReference(property) && it.operationToken in assignmentOperators
|
||||||
is KtUnaryExpression ->
|
is KtUnaryExpression ->
|
||||||
it.baseExpression?.text == KtTokens.FIELD_KEYWORD.value && it.operationToken in incrementAndDecrementOperators
|
it.baseExpression.isBackingFieldReference(property) && it.operationToken in incrementAndDecrementOperators
|
||||||
is KtCallExpression ->
|
is KtCallExpression ->
|
||||||
it.valueArguments.any { arg ->
|
it.valueArguments.any { arg ->
|
||||||
arg.text == parameter?.text
|
arg.text == parameter?.text && run {
|
||||||
&& arg.getArgumentExpression().getResolvedCall(accessorContext)?.resultingDescriptor == parameterDescriptor
|
val argumentResultingDescriptor =
|
||||||
|
arg.getArgumentExpression().getResolvedCall(accessorContext)?.resultingDescriptor
|
||||||
|
argumentResultingDescriptor == parameterDescriptor
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
@@ -54,6 +58,10 @@ class SetterBackingFieldAssignmentInspection : AbstractKotlinInspection(), Clean
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun KtExpression?.isBackingFieldReference(property: KtProperty) = with(SuspiciousVarPropertyInspection) {
|
||||||
|
this@isBackingFieldReference != null && isBackingFieldReference(property)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val assignmentOperators = listOf(KtTokens.EQ, KtTokens.PLUSEQ, KtTokens.MINUSEQ, KtTokens.MULTEQ, KtTokens.DIVEQ, KtTokens.PERCEQ)
|
private val assignmentOperators = listOf(KtTokens.EQ, KtTokens.PLUSEQ, KtTokens.MINUSEQ, KtTokens.MULTEQ, KtTokens.DIVEQ, KtTokens.PERCEQ)
|
||||||
|
|||||||
Reference in New Issue
Block a user