mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
add non-accessible warnings for super classes of params/return types
This commit is contained in:
+7
-6
@@ -1561,12 +1561,13 @@ public class GenericsHighlightUtil {
|
||||
}
|
||||
}
|
||||
|
||||
boolean isInLibrary = !index.isInContent(vFile);
|
||||
for (PsiClassType superType : aClass.getSuperTypes()) {
|
||||
final String notAccessibleMessage = isTypeAccessible(superType, classes, !isInLibrary, resolveScope, factory);
|
||||
if (notAccessibleMessage != null) {
|
||||
return notAccessibleMessage;
|
||||
}
|
||||
}
|
||||
|
||||
boolean isInLibrary = !index.isInContent(vFile);
|
||||
for (PsiClassType superType : aClass.getSuperTypes()) {
|
||||
final String notAccessibleMessage = isTypeAccessible(superType, classes, checkParameters && !isInLibrary, resolveScope, factory);
|
||||
if (notAccessibleMessage != null) {
|
||||
return notAccessibleMessage;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+28
@@ -88,6 +88,34 @@ public class Usage {
|
||||
myFixture.checkHighlighting()
|
||||
}
|
||||
|
||||
void "test class qualifier with inaccessible super of return type"() {
|
||||
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 {}
|
||||
'''
|
||||
myFixture.addFileToProject "mod1/Factory.java", '''
|
||||
public class Factory {
|
||||
public static Class1 create() {return null;}
|
||||
}
|
||||
'''
|
||||
|
||||
myFixture.addFileToProject "mod2/Usage.java", '''
|
||||
public class Usage {
|
||||
{
|
||||
<error descr="Cannot access Class0">Factory.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