From 814a6ac76056cfd63e9847c11cdd643f4f589c2b Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 22 Aug 2013 15:03:35 +0200 Subject: [PATCH] separate warning for constructors --- .../com/siyeh/InspectionGadgetsBundle.properties | 2 ++ .../ig/abstraction/BooleanParameterInspection.java | 14 ++++++++++---- .../BooleanParameterInspectionTest.java | 6 ++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties index 694189a8ad01..f62b033c85c8 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties @@ -2034,4 +2034,6 @@ inner.class.referenced.via.subclass.quickfix=Rationalize inner class access boolean.parameter.display.name='public' method with 'boolean' parameter boolean.parameter.problem.descriptor='public' method #ref with 'boolean' parameter boolean.parameters.problem.descriptor='public' method #ref with 'boolean' parameters +boolean.parameter.constructor.problem.descriptor='public' constructor #ref with 'boolean' parameter +boolean.parameters.constructor.problem.descriptor='public' constructor #ref with 'boolean' parameters boolean.parameter.only.report.multiple.option=Only report methods with multiple boolean parameters \ No newline at end of file diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/BooleanParameterInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/BooleanParameterInspection.java index 5513f421793b..d328f49b1cbf 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/BooleanParameterInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/BooleanParameterInspection.java @@ -45,11 +45,17 @@ public class BooleanParameterInspection extends BaseInspection { @NotNull @Override protected String buildErrorString(Object... infos) { - if (((Integer)infos[0]).intValue() == 1) { - return InspectionGadgetsBundle.message("boolean.parameter.problem.descriptor"); + final PsiMethod method = (PsiMethod)infos[0]; + final int booleanParameterCount = ((Integer)infos[1]).intValue(); + if (booleanParameterCount == 1) { + return method.isConstructor() + ? InspectionGadgetsBundle.message("boolean.parameter.constructor.problem.descriptor") + : InspectionGadgetsBundle.message("boolean.parameter.problem.descriptor"); } else { - return InspectionGadgetsBundle.message("boolean.parameters.problem.descriptor"); + return method.isConstructor() + ? InspectionGadgetsBundle.message("boolean.parameters.constructor.problem.descriptor") + : InspectionGadgetsBundle.message("boolean.parameters.problem.descriptor"); } } @@ -96,7 +102,7 @@ public class BooleanParameterInspection extends BaseInspection { if (count == 0 || onlyReportMultiple && count == 1) { return; } - registerMethodError(method, Integer.valueOf(count)); + registerMethodError(method, method, Integer.valueOf(count)); } } } diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/BooleanParameterInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/BooleanParameterInspectionTest.java index 486037702326..b0c134fc7ca8 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/BooleanParameterInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/abstraction/BooleanParameterInspectionTest.java @@ -32,6 +32,12 @@ public class BooleanParameterInspectionTest extends LightInspectionTestCase { "}"); } + public void testConstructor() { + doTest("class X {" + + " public /*'public' constructor 'X' with 'boolean' parameter*/X/**/(boolean x) {}" + + "}"); + } + @Override protected LocalInspectionTool getInspection() { return new BooleanParameterInspection();