From 9ff2300440610d2e90eecd5d0fa272117b454b28 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Tue, 5 Sep 2017 09:55:47 +0700 Subject: [PATCH] DuplicateConditionInspection: ignoreMethodCalls -> ignoreSideEffectConditions, description updated Review ID: IDEA-CR-20980 --- .../siyeh/ig/controlflow/DuplicateConditionInspection.java | 6 +++--- .../src/inspectionDescriptions/DuplicateCondition.html | 4 ++-- .../ig/controlflow/DuplicateConditionInspectionTest.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java index 1fbd22c36d25..7b2b677f10db 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/DuplicateConditionInspection.java @@ -37,7 +37,7 @@ public class DuplicateConditionInspection extends BaseInspection { /** * @noinspection PublicField */ - public boolean ignoreMethodCalls = true; + public boolean ignoreSideEffectConditions = true; // This is a dirty fix of 'squared' algorithm performance issue. private static final int LIMIT_DEPTH = 20; @@ -58,7 +58,7 @@ public class DuplicateConditionInspection extends BaseInspection { @Nullable public JComponent createOptionsPanel() { return new SingleCheckboxOptionsPanel(InspectionGadgetsBundle.message("duplicate.condition.ignore.method.calls.option"), - this, "ignoreMethodCalls"); + this, "ignoreSideEffectConditions"); } @Override @@ -82,7 +82,7 @@ public class DuplicateConditionInspection extends BaseInspection { return; } final List conditionList = new ArrayList<>(conditions); - if (ignoreMethodCalls) { + if (ignoreSideEffectConditions) { conditionList.replaceAll(cond -> SideEffectChecker.mayHaveSideEffects(cond) ? null : cond); // Every condition having side-effect separates non-side-effect conditions into independent groups // like: diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/DuplicateCondition.html b/plugins/InspectionGadgets/src/inspectionDescriptions/DuplicateCondition.html index 7fdc4af2b892..1555ab93dfe1 100644 --- a/plugins/InspectionGadgets/src/inspectionDescriptions/DuplicateCondition.html +++ b/plugins/InspectionGadgets/src/inspectionDescriptions/DuplicateCondition.html @@ -5,8 +5,8 @@ Reports on any duplicate conditions among different branches of an desired semantics, duplicate conditions usually represent programmer oversight.

-Use the checkbox below to let this inspection ignore conditions containing method calls. Some method calls may return a different value -on an identical invocation. +Use the checkbox below to let this inspection ignore conditions which may produce side effects. +Unchecking this checkbox may lead to some false-positives, e.g. when the same method call returns different values on subsequent invocations.

diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/controlflow/DuplicateConditionInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/controlflow/DuplicateConditionInspectionTest.java index 4535f7fd9b57..84988aad0a03 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/controlflow/DuplicateConditionInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/controlflow/DuplicateConditionInspectionTest.java @@ -17,7 +17,7 @@ public class DuplicateConditionInspectionTest extends LightInspectionTestCase { @Override protected InspectionProfileEntry getInspection() { DuplicateConditionInspection inspection = new DuplicateConditionInspection(); - inspection.ignoreMethodCalls = getTestName(false).contains("NoSideEffect"); + inspection.ignoreSideEffectConditions = getTestName(false).contains("NoSideEffect"); return inspection; } } \ No newline at end of file