diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
index e33585044264..be6f90e356d3 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
@@ -2029,7 +2029,7 @@ junit.rule.display.name=Malformed @Rule/@ClassRule field
junit.rule.problem.descriptor=Fields annotated with @{0} should be {1}
junit.rule.type.problem.descriptor=Field type should be subtype of org.junit.rules.TestRule
junit.datapoint.display.name=Malformed @DataPoint field
-junit.datapoint.problem.descriptor=Fields annotated with @DataPoint should be {0}
+junit.datapoint.problem.descriptor={1}s annotated with @DataPoint should be {0}
inner.class.referenced.via.subclass.display.name=Inner class referenced via subclass
inner.class.referenced.via.subclass.problem.descriptor=Inner class #ref declared in class ''{0}'' but referenced via subclass ''{1}'' #loc
inner.class.referenced.via.subclass.quickfix=Rationalize inner class access
\ No newline at end of file
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitDatapointInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitDatapointInspection.java
index 7520ba8fced0..fdca2818f665 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitDatapointInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitDatapointInspection.java
@@ -1,13 +1,8 @@
package com.siyeh.ig.junit;
import com.intellij.codeInsight.AnnotationUtil;
-import com.intellij.codeInspection.ProblemDescriptor;
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiField;
-import com.intellij.psi.PsiModifier;
-import com.intellij.psi.util.PsiUtil;
-import com.intellij.util.IncorrectOperationException;
+import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.psi.*;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
@@ -46,15 +41,26 @@ public class JUnitDatapointInspection extends BaseInspection {
@Override
public BaseInspectionVisitor buildVisitor() {
return new BaseInspectionVisitor() {
+ @Override
+ public void visitMethod(PsiMethod method) {
+ visitMember(method, "method");
+ }
+
@Override
public void visitField(PsiField field) {
- final boolean dataPointAnnotated = AnnotationUtil.isAnnotated(field, DATAPOINT_FQN, false);
+ visitMember(field, "field");
+ }
+
+ private void visitMember(T member,
+ final String memberDescription) {
+ final boolean dataPointAnnotated = AnnotationUtil.isAnnotated(member, DATAPOINT_FQN, false);
if (dataPointAnnotated) {
- final String errorMessage = JUnitRuleInspection.getPublicStaticErrorMessage(field, false, true);
+ final String errorMessage = JUnitRuleInspection.getPublicStaticErrorMessage(member, false, true);
if (errorMessage != null) {
- registerError(field.getNameIdentifier(),
- InspectionGadgetsBundle.message("junit.datapoint.problem.descriptor", errorMessage),
- "Make field " + errorMessage, DATAPOINT_FQN);
+ final PsiElement identifier = member.getNameIdentifier();
+ registerError(identifier != null ? identifier : member,
+ InspectionGadgetsBundle.message("junit.datapoint.problem.descriptor", errorMessage, StringUtil.capitalize(memberDescription)),
+ "Make " + memberDescription + " " + errorMessage, DATAPOINT_FQN);
}
}
}
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitRuleInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitRuleInspection.java
index f29d519fc2bc..ec7e4a1b1420 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitRuleInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/JUnitRuleInspection.java
@@ -19,6 +19,7 @@ import com.intellij.codeInsight.AnnotationUtil;
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiModifier;
+import com.intellij.psi.PsiModifierListOwner;
import com.intellij.psi.util.InheritanceUtil;
import com.intellij.psi.util.PsiUtil;
import com.siyeh.InspectionGadgetsBundle;
@@ -90,7 +91,7 @@ public class JUnitRuleInspection extends BaseInspection {
};
}
- static String getPublicStaticErrorMessage(PsiField field, boolean shouldBeNonStatic, boolean shouldBeStatic) {
+ static String getPublicStaticErrorMessage(PsiModifierListOwner field, boolean shouldBeNonStatic, boolean shouldBeStatic) {
String errorMessage = null;
final boolean hasStatic = field.hasModifierProperty(PsiModifier.STATIC);
final boolean hasPublic = field.hasModifierProperty(PsiModifier.PUBLIC);
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/MakePublicStaticFix.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/MakePublicStaticFix.java
index 30b1f1d1f590..7e8a6c235c59 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/MakePublicStaticFix.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/MakePublicStaticFix.java
@@ -4,6 +4,7 @@ import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiField;
+import com.intellij.psi.PsiMember;
import com.intellij.psi.PsiModifier;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
@@ -28,9 +29,9 @@ class MakePublicStaticFix extends InspectionGadgetsFix {
final PsiElement element = descriptor.getPsiElement();
if (element != null) {
final PsiElement parent = element.getParent();
- if (parent instanceof PsiField) {
- PsiUtil.setModifierProperty((PsiField)parent, PsiModifier.PUBLIC, true);
- PsiUtil.setModifierProperty((PsiField)parent, PsiModifier.STATIC, myMakeStatic);
+ if (parent instanceof PsiMember) {
+ PsiUtil.setModifierProperty((PsiMember)parent, PsiModifier.PUBLIC, true);
+ PsiUtil.setModifierProperty((PsiMember)parent, PsiModifier.STATIC, myMakeStatic);
}
}
}
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/junit/rule/wrongdatapoint.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/junit/rule/wrongdatapoint.java
index 5a8a898c1671..4142e2b9a516 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/junit/rule/wrongdatapoint.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/junit/rule/wrongdatapoint.java
@@ -3,4 +3,5 @@ class Test {
@org.junit.experimental.theories.DataPoint public Object f2;
@org.junit.experimental.theories.DataPoint static Object f3;
@org.junit.experimental.theories.DataPoint Object f4;
+ @org.junit.experimental.theories.DataPoint Object f4(){return null;}
}