mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
add non-accessible warnings for static calls
This commit is contained in:
+6
@@ -1308,6 +1308,12 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
|
||||
type = ((PsiCapturedWildcardType)type).getUpperBound();
|
||||
}
|
||||
PsiClass psiClass = PsiUtil.resolveClassInType(type);
|
||||
if (psiClass == null && qualifierExpression instanceof PsiReferenceExpression) {
|
||||
PsiElement resolve = ((PsiReferenceExpression)qualifierExpression).resolve();
|
||||
if (resolve instanceof PsiClass) {
|
||||
psiClass = (PsiClass)resolve;
|
||||
}
|
||||
}
|
||||
if (psiClass != null) {
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkClassSupersAccessibility(psiClass, expression));
|
||||
if (!myHolder.hasErrorResults()) myHolder.add(GenericsHighlightUtil.checkMemberSignatureTypesAccessibility(expression));
|
||||
|
||||
+25
@@ -63,6 +63,31 @@ class Class3 {
|
||||
myFixture.checkHighlighting()
|
||||
}
|
||||
|
||||
void "test class qualifier with inaccessible super"() {
|
||||
def mod1 = PsiTestUtil.addModule(project, JavaModuleType.moduleType, "mod1", myFixture.tempDirFixture.findOrCreateDir("mod1"))
|
||||
def mod2 = PsiTestUtil.addModule(project, JavaModuleType.moduleType, "mod2", myFixture.tempDirFixture.findOrCreateDir("mod2"))
|
||||
ModuleRootModificationUtil.addDependency(mod1, myModule)
|
||||
ModuleRootModificationUtil.addDependency(mod2, mod1)
|
||||
myFixture.addClass"public class Class0 {}"
|
||||
|
||||
myFixture.addFileToProject "mod1/Class1.java", '''
|
||||
public class Class1 extends Class0 {
|
||||
public static Class1 create() {return null;}
|
||||
}
|
||||
'''
|
||||
|
||||
myFixture.addFileToProject "mod2/Usage.java", '''
|
||||
public class Usage {
|
||||
{
|
||||
<error descr="Cannot access Class0">Class1.create</error>();
|
||||
}
|
||||
}
|
||||
'''
|
||||
|
||||
myFixture.configureFromTempProjectFile "mod2/Usage.java"
|
||||
myFixture.checkHighlighting()
|
||||
}
|
||||
|
||||
void "test use original place classpath for new expression type resolving"() {
|
||||
addTwoModules()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user