separate warning for constructors

This commit is contained in:
Bas Leijdekkers
2013-08-22 15:16:45 +02:00
parent 81ff306802
commit 814a6ac760
3 changed files with 18 additions and 4 deletions
@@ -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 <code>#ref</code> with 'boolean' parameter
boolean.parameters.problem.descriptor='public' method <code>#ref</code> with 'boolean' parameters
boolean.parameter.constructor.problem.descriptor='public' constructor <code>#ref</code> with 'boolean' parameter
boolean.parameters.constructor.problem.descriptor='public' constructor <code>#ref</code> with 'boolean' parameters
boolean.parameter.only.report.multiple.option=Only report methods with multiple boolean parameters
@@ -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));
}
}
}
@@ -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();