diff --git a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java index 30c6d8dbd39b..bcb3fe840c01 100644 --- a/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java +++ b/java/java-tests/testSrc/com/intellij/roots/ModuleScopesTest.java @@ -201,4 +201,15 @@ public class ModuleScopesTest extends ModuleTestCase { return libraryRoot; } + + public void testLibUnderModuleContent() throws IOException { + VirtualFile lib = myFixture.findOrCreateDir("lib"); + ModifiableRootModel model = ModuleRootManager.getInstance(myModule).getModifiableModel(); + model.addContentEntry(lib); + model.commit(); + + VirtualFile file = lib.createChildData(this, "a.txt"); + addLibrary(myModule, DependencyScope.COMPILE); + assertTrue(myModule.getModuleWithDependenciesAndLibrariesScope(false).contains(file)); + } } diff --git a/platform/lang-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependenciesScope.java b/platform/lang-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependenciesScope.java index 0fb40f8c0ba8..69bc48d27d25 100644 --- a/platform/lang-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependenciesScope.java +++ b/platform/lang-impl/src/com/intellij/openapi/module/impl/scopes/ModuleWithDependenciesScope.java @@ -118,7 +118,10 @@ public class ModuleWithDependenciesScope extends GlobalSearchScope { @Override public boolean contains(VirtualFile file) { - return myRoots.contains(getFileRoot(file)); + if (myProjectFileIndex.isInContent(file) && myRoots.contains(myProjectFileIndex.getSourceRootForFile(file))) { + return true; + } + return myRoots.contains(myProjectFileIndex.getClassRootForFile(file)); } @Override