From 0cf641398c3c373e91601dfa583fd06115a28416 Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Tue, 26 Mar 2019 01:26:43 +0900 Subject: [PATCH] Suspicious 'var' property: do not report when property has default getter #KT-30565 Fixed --- .../idea/inspections/SuspiciousVarPropertyInspection.kt | 2 +- .../suspiciousVarProperty/hasBackingFieldRef3.kt | 5 +++++ .../idea/inspections/LocalInspectionTestGenerated.java | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 idea/testData/inspectionsLocal/suspiciousVarProperty/hasBackingFieldRef3.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousVarPropertyInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousVarPropertyInspection.kt index 15472874cd4..6ef86bb33e1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousVarPropertyInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/SuspiciousVarPropertyInspection.kt @@ -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 { it.isBackingFieldReference(property) } diff --git a/idea/testData/inspectionsLocal/suspiciousVarProperty/hasBackingFieldRef3.kt b/idea/testData/inspectionsLocal/suspiciousVarProperty/hasBackingFieldRef3.kt new file mode 100644 index 00000000000..bd5ed52fb41 --- /dev/null +++ b/idea/testData/inspectionsLocal/suspiciousVarProperty/hasBackingFieldRef3.kt @@ -0,0 +1,5 @@ +// PROBLEM: none +class Test { + var foo: Int? = null + get +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index cd47addef0f..8e4b72e32a4 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -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");