From 86b2b222baef2eb7baf945a8f6eb214416da2851 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 25 Dec 2015 18:31:25 +0300 Subject: [PATCH] IDEA-149645 "Access can be tightened" inspection should have option for avoiding synthetic accessors --- .../visibility/AccessCanBeTightenedInspection.java | 6 +++++- .../visibility/AccessCanBeTightenedInspectionTest.java | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspection.java index a208a32e586f..78a0c28c39ef 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspection.java @@ -230,7 +230,7 @@ class AccessCanBeTightenedInspection extends BaseJavaBatchLocalInspectionTool { } return myVisibilityInspection.SUGGEST_PRIVATE_FOR_INNERS || - memberClass == aClass && memberClass.getContainingClass() == null ? PsiUtil.ACCESS_LEVEL_PRIVATE : suggestPackageLocal(member); + !isInnerClass(memberClass) ? PsiUtil.ACCESS_LEVEL_PRIVATE : suggestPackageLocal(member); } //if (file == memberFile) { // return PsiUtil.ACCESS_LEVEL_PACKAGE_LOCAL; @@ -253,6 +253,10 @@ class AccessCanBeTightenedInspection extends BaseJavaBatchLocalInspectionTool { } } + private static boolean isInnerClass(@NotNull PsiClass memberClass) { + return memberClass.getContainingClass() != null || memberClass instanceof PsiAnonymousClass; + } + private static boolean isInReferenceList(@Nullable PsiElement list, @NotNull final PsiMember member) { if (list == null) return false; final PsiManager psiManager = member.getManager(); diff --git a/plugins/InspectionGadgets/testsrc/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspectionTest.java index a395dc96beea..38e229346c87 100644 --- a/plugins/InspectionGadgets/testsrc/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/intellij/codeInspection/visibility/AccessCanBeTightenedInspectionTest.java @@ -96,13 +96,15 @@ public class AccessCanBeTightenedInspectionTest extends LightInspectionTestCase VisibilityInspection visibilityInspection = ReflectionUtil.getField(inspection.getClass(), inspection, VisibilityInspection.class, "myVisibilityInspection"); visibilityInspection.SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS = false; + visibilityInspection.SUGGEST_PRIVATE_FOR_INNERS = false; doTest("class C {\n" + " {\n" + " new Runnable() {\n" + " @Override\n" + - " public void run() {}\n"+ - " boolean isVisible() { return true; }\n" + + " public void run() { isDisposed = true; }\n"+ + " boolean isVisible() { return true; }\n" + + " boolean isDisposed;\n" + " }.run();\n" + " }\n"+ "}");