fix visibility of private inner classes in annotations arguments of a sibling class (IDEA-168927)

This commit is contained in:
Anna.Kozlova
2017-03-02 18:30:06 +01:00
parent 130563882e
commit bdb718f7cb
3 changed files with 15 additions and 1 deletions
@@ -163,7 +163,7 @@ public class JavaResolveUtil {
PsiClass placeTopLevelClass = getTopLevelClass(place, null);
PsiClass memberTopLevelClass = getTopLevelClass(memberClass, null);
return manager.areElementsEquivalent(placeTopLevelClass, memberTopLevelClass) &&
!isInClassAnnotationParameterList(place, PsiTreeUtil.getContextOfType(place, PsiClass.class, false));
!isInClassAnnotationParameterList(place, placeTopLevelClass);
}
else {
return fileResolveScope instanceof PsiClass &&
@@ -0,0 +1,10 @@
class Main {
@interface Anno {
Class value();
}
private static class A {}
@Anno(A.class)
class U {}
}
@@ -98,4 +98,8 @@ public class LightAdvHighlightingJdk6Test extends LightDaemonAnalyzerTestCase {
public void testReachableWhileBodyDueToConstantStringComparison() throws Exception {
doTest(false, false);
}
public void testPrivateClassReferencedInAnnotationOnSibling() throws Exception {
doTest(false, false);
}
}