mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
private inner is not visible in type param bounds (IDEA-67517)
This commit is contained in:
+9
-2
@@ -689,8 +689,15 @@ public class HighlightClassUtil {
|
||||
return null;
|
||||
}
|
||||
final PsiClass aClass = (PsiClass)grand;
|
||||
final PsiClass containerClass;
|
||||
if (aClass instanceof PsiTypeParameter) {
|
||||
return null;
|
||||
final PsiTypeParameterListOwner owner = ((PsiTypeParameter)aClass).getOwner();
|
||||
if (!(owner instanceof PsiClass)) {
|
||||
return null;
|
||||
}
|
||||
containerClass = (PsiClass)owner;
|
||||
} else {
|
||||
containerClass = aClass;
|
||||
}
|
||||
if (aClass.getExtendsList() != parent && aClass.getImplementsList() != parent) {
|
||||
return null;
|
||||
@@ -713,7 +720,7 @@ public class HighlightClassUtil {
|
||||
if (resolve instanceof PsiClass) {
|
||||
final PsiClass base = (PsiClass)resolve;
|
||||
final PsiClass baseClass = base.getContainingClass();
|
||||
if (baseClass != null && base.hasModifierProperty(PsiModifier.PRIVATE) && !PsiTreeUtil.isAncestor(baseClass, aClass, true)) {
|
||||
if (baseClass != null && base.hasModifierProperty(PsiModifier.PRIVATE) && baseClass == containerClass) {
|
||||
String description = JavaErrorMessages.message("private.symbol",
|
||||
HighlightUtil.formatClass(base),
|
||||
HighlightUtil.formatClass(baseClass));
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
class A<T extends <error descr="'A.B' has private access in 'A'">A<T>.B</error>> {
|
||||
private class B {}
|
||||
}
|
||||
+1
@@ -87,6 +87,7 @@ public class LightAdvHighlightingJdk7Test extends LightDaemonAnalyzerTestCase {
|
||||
public void testDiamondNeg14() throws Exception { doTest(false, false); }
|
||||
public void testDiamondMisc() throws Exception { doTest(false, false); }
|
||||
public void testHighlightInaccessibleFromClassModifierList() throws Exception { doTest(false, false); }
|
||||
public void testInnerInTypeArguments() throws Exception { doTest(false, false); }
|
||||
|
||||
public void testDynamicallyAddIgnoredAnnotations() throws Exception {
|
||||
ExtensionPoint<EntryPoint> point = Extensions.getRootArea().getExtensionPoint(ExtensionPoints.DEAD_CODE_TOOL);
|
||||
|
||||
Reference in New Issue
Block a user