diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveUtil.java index b96a4db3378f..8113cf28f45b 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveUtil.java @@ -196,7 +196,7 @@ public class JavaResolveUtil { private static boolean isInClassAnnotationParameterList(@NotNull PsiElement place, @Nullable PsiClass contextClass) { if (contextClass != null) { PsiAnnotation annotation = PsiTreeUtil.getContextOfType(place, PsiAnnotation.class, true); - if (annotation != null && contextClass.getModifierList() == annotation.getOwner()) { + if (annotation != null && PsiTreeUtil.isAncestor(contextClass.getModifierList(), annotation, false)) { return true; } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/HighlightInaccessibleFromClassModifierList.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/HighlightInaccessibleFromClassModifierList.java index 974d6ee9c6e6..78f20b9134ba 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/HighlightInaccessibleFromClassModifierList.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/HighlightInaccessibleFromClassModifierList.java @@ -1,4 +1,14 @@ @SuppressWarnings(ThisClass.FOO) +@A(@B(ThisClass.FOO)) public class ThisClass { private static final String FOO = "foo"; +} + + +@interface A { + B value(); +} + +@interface B { + String value(); } \ No newline at end of file