From 24dfcdc79a2d42fc68c08e70e95d28624191bd73 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 13 Jul 2016 23:48:27 +0200 Subject: [PATCH] IG: result of getters should not be ignored --- .../ig/bugs/IgnoreResultOfCallInspectionBase.java | 5 +++++ .../ig/bugs/IgnoreResultOfCallInspectionTest.groovy | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionBase.java index 90ec54d62cc7..154eaec48c1e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionBase.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionBase.java @@ -21,6 +21,7 @@ import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; import com.intellij.openapi.util.registry.Registry; import com.intellij.psi.*; +import com.intellij.psi.util.PropertyUtil; import com.intellij.psi.util.PsiUtilCore; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; @@ -136,6 +137,10 @@ public class IgnoreResultOfCallInspectionBase extends BaseInspection { if (PsiUtilCore.hasErrorElementChild(statement)) { return; } + if (PropertyUtil.isSimpleGetter(method)) { + registerMethodCallError(call, aClass); + return; + } if (m_reportAllNonLibraryCalls && !LibraryUtil.classIsInLibrary(aClass)) { registerMethodCallError(call, aClass); return; diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionTest.groovy b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionTest.groovy index 1ad5af5df95c..2cb55b3d4952 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionTest.groovy +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/IgnoreResultOfCallInspectionTest.groovy @@ -82,6 +82,18 @@ public class IgnoreResultOfCallInspectionTest extends LightInspectionTestCase { "}"); } + public void testRandomGetter() { + doTest("class A {" + + " private String name;" + + " public String getName() {" + + " return name;" + + " }" + + " void m() {" + + " /*Result of 'A.getName()' is ignored*/getName/**/();" + + " }" + + "}") + } + public void testJSR305Annotation2() { doTest("import javax.annotation.CheckReturnValue;" + "@CheckReturnValue " +