diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java index 0179b3135c0a..0729b89613ce 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/GenericsHighlightUtil.java @@ -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; } diff --git a/java/java-tests/testData/codeInsight/multipleJdks/java3/p/MissedAutoCloseable.java b/java/java-tests/testData/codeInsight/multipleJdks/java3/p/MissedAutoCloseable.java new file mode 100644 index 000000000000..a2e2efde5dbf --- /dev/null +++ b/java/java-tests/testData/codeInsight/multipleJdks/java3/p/MissedAutoCloseable.java @@ -0,0 +1,3 @@ +package p; + +class A extends Foo {} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/multipleJdks/java7/p/MissedAutoCloseable.java b/java/java-tests/testData/codeInsight/multipleJdks/java7/p/MissedAutoCloseable.java new file mode 100644 index 000000000000..03523e263be9 --- /dev/null +++ b/java/java-tests/testData/codeInsight/multipleJdks/java7/p/MissedAutoCloseable.java @@ -0,0 +1,9 @@ +package p; + +import java.net.*; + +class Foo extends URLClassLoader{ + public Foo() { + super(null); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/MultipleJdksHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/MultipleJdksHighlightingTest.java index c869e634ceba..5b0b6f47532e 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/MultipleJdksHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/MultipleJdksHighlightingTest.java @@ -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);