accessibility checks: stop at library level

This commit is contained in:
Anna.Kozlova
2016-03-16 15:35:39 +01:00
parent 15d6e64813
commit d0011b3acb
4 changed files with 23 additions and 1 deletions
@@ -1507,6 +1507,7 @@ public class GenericsHighlightUtil {
}
if (checkParameters) {
boolean isInLibrary = !index.isInContent(vFile);
if (superType instanceof PsiClassType) {
for (PsiType psiType : ((PsiClassType)superType).getParameters()) {
final String notAccessibleMessage = isSuperTypeAccessible(psiType, classes, true, resolveScope, factory);
@@ -1517,7 +1518,7 @@ public class GenericsHighlightUtil {
}
for (PsiClassType type : aClass.getSuperTypes()) {
final String notAccessibleMessage = isSuperTypeAccessible(type, classes, true, resolveScope, factory);
final String notAccessibleMessage = isSuperTypeAccessible(type, classes, !isInLibrary, resolveScope, factory);
if (notAccessibleMessage != null) {
return notAccessibleMessage;
}
@@ -0,0 +1,3 @@
package p;
class A extends Foo {}
@@ -0,0 +1,9 @@
package p;
import java.net.*;
class Foo extends URLClassLoader{
public Foo() {
super(null);
}
}
@@ -186,6 +186,15 @@ public class MultipleJdksHighlightingTest extends UsefulTestCase {
myFixture.checkHighlighting();
}
public void testMissedAutoCloseable() {
IdeaTestUtil.setModuleLanguageLevel(myJava7Module, LanguageLevel.JDK_1_7);
ModuleRootModificationUtil.addDependency(myJava3Module, myJava7Module);
final String name = getTestName(false);
myFixture.copyFileToProject("java7/p/" + name + ".java");
myFixture.configureByFiles("java3/p/" + name + ".java");
myFixture.checkHighlighting();
}
public void testLanguageLevelInReturnTypeCheck() throws Exception {
addDependencies_37_78();
final String name = getTestName(false);