Suspicious 'var' property: do not report when property has default getter

#KT-30565 Fixed
This commit is contained in:
Toshiaki Kameyama
2019-03-26 01:26:43 +09:00
committed by Mikhail Glukhikh
parent a26df4b4c6
commit 0cf641398c
3 changed files with 11 additions and 1 deletions
@@ -40,7 +40,7 @@ class SuspiciousVarPropertyInspection : AbstractKotlinInspection() {
companion object {
private fun KtPropertyAccessor.hasBackingFieldReference(): Boolean {
val bodyExpression = this.bodyExpression ?: return false
val bodyExpression = this.bodyExpression ?: return true
return bodyExpression.isBackingFieldReference(property) || bodyExpression.anyDescendantOfType<KtNameReferenceExpression> {
it.isBackingFieldReference(property)
}
@@ -0,0 +1,5 @@
// PROBLEM: none
class Test {
<caret>var foo: Int? = null
get
}
@@ -8219,6 +8219,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
runTest("idea/testData/inspectionsLocal/suspiciousVarProperty/hasBackingFieldRef2.kt");
}
@TestMetadata("hasBackingFieldRef3.kt")
public void testHasBackingFieldRef3() throws Exception {
runTest("idea/testData/inspectionsLocal/suspiciousVarProperty/hasBackingFieldRef3.kt");
}
@TestMetadata("hasSetter.kt")
public void testHasSetter() throws Exception {
runTest("idea/testData/inspectionsLocal/suspiciousVarProperty/hasSetter.kt");