From 8e598aa9086a77127de81205d2aa834fe53c2450 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Fri, 7 Apr 2017 15:35:35 +0200 Subject: [PATCH] java 9: reject private modifiers in annotation types (IDEA-171088) --- .../codeInsight/daemon/impl/analysis/HighlightUtil.java | 2 +- .../advHighlighting9/PrivateInInterfaces.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 467f71c2a18d..f7befda24842 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -967,7 +967,7 @@ public class HighlightUtil extends HighlightUtilBase { if (PsiModifier.PRIVATE.equals(modifier)) { isAllowed &= modifierOwnerParent instanceof PsiClass && - (!((PsiClass)modifierOwnerParent).isInterface() || PsiUtil.isLanguageLevel9OrHigher(modifierOwner)); + (!((PsiClass)modifierOwnerParent).isInterface() || PsiUtil.isLanguageLevel9OrHigher(modifierOwner) && !((PsiClass)modifierOwnerParent).isAnnotationType()); } else if (PsiModifier.STRICTFP.equals(modifier)) { isAllowed &= modifierOwnerParent instanceof PsiClass && (!((PsiClass)modifierOwnerParent).isInterface() || PsiUtil.isLanguageLevel8OrHigher(modifierOwner)); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting9/PrivateInInterfaces.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting9/PrivateInInterfaces.java index 4998dae837eb..d0f2e08ea6ba 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting9/PrivateInInterfaces.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting9/PrivateInInterfaces.java @@ -20,4 +20,9 @@ interface E { interface F { private int m = 0; +} + +@interface G { + private String m(); + private String m1() {return "";} } \ No newline at end of file