From db47e5ccd88629baef31ff75a813f8273ec51c92 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 20 Jan 2011 18:49:33 +0100 Subject: [PATCH] forbid private/protected class modifiers inside anonymous classes (IDEA-64188) --- .../codeInsight/daemon/impl/analysis/HighlightUtil.java | 4 ++++ .../daemonCodeAnalyzer/advHighlighting/a11.java | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 0496e5abfeea..726bb4b209b1 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -767,6 +767,10 @@ public class HighlightUtil { if (aClass.isEnum()) { isAllowed &= !(PsiModifier.FINAL.equals(modifier) || PsiModifier.ABSTRACT.equals(modifier)); } + + if (aClass.getContainingClass() instanceof PsiAnonymousClass) { + isAllowed &= !(PsiModifier.PRIVATE.equals(modifier) || PsiModifier.PROTECTED.equals(modifier)); + } } } else if (modifierOwner instanceof PsiMethod) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/a11.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/a11.java index 1edc0de72d6c..14dc7c34bc6f 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/a11.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/a11.java @@ -102,5 +102,13 @@ public class a { public void run() {} }; } + + void withanonymous() { + new Object() { + private class RT {} + private void method() {} + private int myI; + }; + } }