From ef962be9b2dc23e6f575df59b6356b4911db747b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 11 Jun 2019 11:52:27 +0200 Subject: [PATCH] test only: exclude call arguments from highlighting GitOrigin-RevId: adc4b9995d180401516139f592083661dc7fd999 --- .../testOnly/TestOnlyInspection.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/testOnly/TestOnlyInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/testOnly/TestOnlyInspection.java index 9e573dc86ee9..47d2b2b2a550 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/testOnly/TestOnlyInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/testOnly/TestOnlyInspection.java @@ -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 ourModifiersDescending =