mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-154583 Resolve inside library through exported dependencies quirks
This commit is contained in:
@@ -26,6 +26,7 @@ import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
||||
import com.intellij.openapi.roots.OrderEnumerator;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.impl.ResolveScopeManager;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.testFramework.ModuleTestCase;
|
||||
import com.intellij.testFramework.PsiTestUtil;
|
||||
@@ -309,4 +310,23 @@ public class ModuleScopesTest extends ModuleTestCase {
|
||||
assertEquals(deps, deps2);
|
||||
assertEquals(depsTests, depsTests2);
|
||||
}
|
||||
|
||||
public void testHonorExportsWhenCalculatingLibraryScope() throws IOException {
|
||||
Module a = createModule("a.iml", StdModuleTypes.JAVA);
|
||||
Module b = createModule("b.iml", StdModuleTypes.JAVA);
|
||||
Module c = createModule("c.iml", StdModuleTypes.JAVA);
|
||||
ModuleRootModificationUtil.addDependency(a, b, DependencyScope.COMPILE, true);
|
||||
ModuleRootModificationUtil.addDependency(b, c, DependencyScope.COMPILE, true);
|
||||
|
||||
final VirtualFile libFile1 = myFixture.createFile("lib1/a.txt", "");
|
||||
final VirtualFile libFile2 = myFixture.createFile("lib2/a.txt", "");
|
||||
|
||||
ModuleRootModificationUtil.addModuleLibrary(a, "l", Collections.singletonList(libFile1.getParent().getUrl()),
|
||||
Collections.emptyList(), Collections.emptyList(), DependencyScope.COMPILE, true);
|
||||
ModuleRootModificationUtil.addModuleLibrary(c, "l", Collections.singletonList(libFile2.getParent().getUrl()),
|
||||
Collections.emptyList(), Collections.emptyList(), DependencyScope.COMPILE, true);
|
||||
|
||||
assertTrue(ResolveScopeManager.getElementResolveScope(getPsiManager().findFile(libFile1)).contains(libFile2));
|
||||
assertTrue(ResolveScopeManager.getElementResolveScope(getPsiManager().findFile(libFile2)).contains(libFile1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -249,7 +249,7 @@ public class RootIndex {
|
||||
final Module depModule = moduleOrderEntry.getModule();
|
||||
if (depModule != null) {
|
||||
Node node = graph.myNodes.get(depModule);
|
||||
OrderEnumerator en = OrderEnumerator.orderEntries(depModule).exportedOnly();
|
||||
OrderEnumerator en = OrderEnumerator.orderEntries(depModule).exportedOnly().recursively();
|
||||
if (node == null) {
|
||||
node = new Node();
|
||||
node.myKey = depModule;
|
||||
|
||||
Reference in New Issue
Block a user