test only: exclude call arguments from highlighting

GitOrigin-RevId: adc4b9995d180401516139f592083661dc7fd999
This commit is contained in:
Anna Kozlova
2019-06-11 18:01:16 +03:00
committed by intellij-monorepo-bot
parent 75ae2fb6eb
commit ef962be9b2
@@ -47,8 +47,16 @@ public class TestOnlyInspection extends AbstractBaseJavaLocalInspectionTool {
public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder h, boolean isOnTheFly) {
return new JavaElementVisitor() {
@Override
public void visitCallExpression(PsiCallExpression e) {
validate(e, e.resolveMethod(), h);
public void visitMethodCallExpression(PsiMethodCallExpression expression) {
validate(expression.getMethodExpression(), expression.resolveMethod(), h);
}
@Override
public void visitNewExpression(PsiNewExpression expression) {
PsiJavaCodeReferenceElement reference = expression.getClassOrAnonymousClassReference();
if (reference != null) {
validate(reference, expression.resolveMethod(), h);
}
}
@Override
@@ -80,12 +88,12 @@ public class TestOnlyInspection extends AbstractBaseJavaLocalInspectionTool {
};
}
private static void validate(@NotNull PsiElement reference, @Nullable PsiMember member, ProblemsHolder h) {
private static void validate(@NotNull PsiElement place, @Nullable PsiMember member, ProblemsHolder h) {
if (member == null || !isAnnotatedAsTestOnly(member)) return;
if (isInsideTestOnlyMethod(reference)) return;
if (isInsideTestOnlyField(reference)) return;
if (isInsideTestClass(reference)) return;
if (isUnderTestSources(reference)) return;
if (isInsideTestOnlyMethod(place)) return;
if (isInsideTestOnlyField(place)) return;
if (isInsideTestClass(place)) return;
if (isUnderTestSources(place)) return;
PsiAnnotation anno = findVisibleForTestingAnnotation(member);
if (anno != null) {
@@ -95,12 +103,12 @@ public class TestOnlyInspection extends AbstractBaseJavaLocalInspectionTool {
}
LightModifierList modList = new LightModifierList(member.getManager(), JavaLanguage.INSTANCE, modifier);
if (JavaResolveUtil.isAccessible(member, member.getContainingClass(), modList, reference, null, null)) {
if (JavaResolveUtil.isAccessible(member, member.getContainingClass(), modList, place, null, null)) {
return;
}
}
reportProblem(reference, member, h);
reportProblem(place, member, h);
}
private static final List<String> ourModifiersDescending =