mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[java-psi] IDEA-367231 Incorrect use scope for public class inside non-public non-final containing class
(cherry picked from commit 9238a1c2cb5749f4a711815150c14324d8d7f64e) IJ-CR-154834 GitOrigin-RevId: ecfa67d0b540e43d1054d2e283ec4e85badc3dae
This commit is contained in:
committed by
intellij-monorepo-bot
parent
69e0ecef4c
commit
27e21144a2
@@ -285,7 +285,9 @@ public final class PsiClassImplUtil {
|
||||
PsiClass containingClass = aClass.getContainingClass();
|
||||
if (aClass.hasModifierProperty(PsiModifier.PUBLIC) ||
|
||||
aClass.hasModifierProperty(PsiModifier.PROTECTED)) {
|
||||
return containingClass == null ? maximalUseScope : containingClass.getUseScope();
|
||||
// If the containing class is not final, it's possible to expose nested class through public subclass of containing class
|
||||
return containingClass == null || !containingClass.hasModifierProperty(PsiModifier.FINAL) ?
|
||||
maximalUseScope : containingClass.getUseScope();
|
||||
}
|
||||
else if (aClass.hasModifierProperty(PsiModifier.PRIVATE) || aClass instanceof PsiTypeParameter) {
|
||||
PsiClass topClass = PsiUtil.getTopLevelClass(aClass);
|
||||
|
||||
Reference in New Issue
Block a user