SetterBackingFieldAssignment: minor refactoring
This commit is contained in:
+12
-4
@@ -34,13 +34,17 @@ class SetterBackingFieldAssignmentInspection : AbstractKotlinInspection(), Clean
|
||||
if (bodyExpression.anyDescendantOfType<KtExpression> {
|
||||
when (it) {
|
||||
is KtBinaryExpression ->
|
||||
it.left?.text == KtTokens.FIELD_KEYWORD.value && it.operationToken in assignmentOperators
|
||||
it.left.isBackingFieldReference(property) && it.operationToken in assignmentOperators
|
||||
is KtUnaryExpression ->
|
||||
it.baseExpression?.text == KtTokens.FIELD_KEYWORD.value && it.operationToken in incrementAndDecrementOperators
|
||||
it.baseExpression.isBackingFieldReference(property) && it.operationToken in incrementAndDecrementOperators
|
||||
is KtCallExpression ->
|
||||
it.valueArguments.any { arg ->
|
||||
arg.text == parameter?.text
|
||||
&& arg.getArgumentExpression().getResolvedCall(accessorContext)?.resultingDescriptor == parameterDescriptor
|
||||
arg.text == parameter?.text && run {
|
||||
val argumentResultingDescriptor =
|
||||
arg.getArgumentExpression().getResolvedCall(accessorContext)?.resultingDescriptor
|
||||
argumentResultingDescriptor == parameterDescriptor
|
||||
}
|
||||
|
||||
}
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user