mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java: properly handle refs to protected inner classes in 'Suspicious package-private access' inspection (IDEA-200047)
This commit is contained in:
+3
-3
@@ -149,10 +149,10 @@ public class SuspiciousPackagePrivateAccessInspection extends AbstractBaseUastLo
|
||||
accessObjectType = (PsiClass)element;
|
||||
}
|
||||
|
||||
UClass sourceClass = UastUtils.getParentOfType(sourceNode, UClass.class);
|
||||
PsiElement sourcePsi = sourceNode.getSourcePsi();
|
||||
PsiClass sourceClass = PsiTreeUtil.getParentOfType(sourcePsi, PsiClass.class);
|
||||
if (sourceClass == null) return false;
|
||||
PsiClass sourceClassJava = sourceClass.getJavaPsi();
|
||||
return JavaResolveUtil.canAccessProtectedMember(member, memberClass, accessObjectType, sourceClassJava, member.hasModifierProperty(PsiModifier.STATIC));
|
||||
return JavaResolveUtil.canAccessProtectedMember(member, memberClass, accessObjectType, sourceClass, member.hasModifierProperty(PsiModifier.STATIC));
|
||||
}
|
||||
|
||||
private boolean isPackageLocalAccessSuspicious(Module sourceModule, Module targetModule) {
|
||||
|
||||
+3
@@ -6,4 +6,7 @@ public class ProtectedMembers {
|
||||
|
||||
static protected void staticMethod() {
|
||||
}
|
||||
|
||||
protected static class StaticInner {
|
||||
}
|
||||
}
|
||||
+9
@@ -18,5 +18,14 @@ class AccessingProtectedMembersFromSubclass extends ProtectedMembers {
|
||||
aClass.<warning descr="Method ProtectedMembers.method() is protected and used not through a subclass here, but declared in a different module 'dep'">method</warning>();
|
||||
AccessingProtectedMembersFromSubclass myInstance = new AccessingProtectedMembersFromSubclass();
|
||||
myInstance.method();
|
||||
|
||||
ProtectedMembers.StaticInner inner1;
|
||||
StaticInner inner2;
|
||||
}
|
||||
|
||||
public static class StaticInnerImpl1 extends ProtectedMembers.StaticInner {
|
||||
}
|
||||
|
||||
public static class StaticInnerImpl2 extends StaticInner {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user