From 659a78b4bf0d5fab705d569cfbf783aee4ef1f24 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 26 Jul 2018 16:04:29 +0200 Subject: [PATCH] [java] allows automatic modules to the upgrade path (IDEA-189693) --- .../psi/impl/file/impl/JavaFileManagerImpl.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java b/java/java-indexing-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java index 4366eeb98122..cb5776db8a54 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/file/impl/JavaFileManagerImpl.java @@ -30,7 +30,6 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes; import java.util.*; -import java.util.stream.Collectors; import java.util.stream.Stream; import static java.util.Objects.requireNonNull; @@ -178,20 +177,14 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { public Collection findModules(@NotNull String moduleName, @NotNull GlobalSearchScope scope) { GlobalSearchScope excludingScope = new LibSrcExcludingScope(scope); - Collection named = JavaModuleNameIndex.getInstance().get(moduleName, myManager.getProject(), excludingScope); - if (!named.isEmpty()) { - return upgradeModules(sortModules(named, scope), moduleName, scope); - } + List results = new ArrayList<>(JavaModuleNameIndex.getInstance().get(moduleName, myManager.getProject(), excludingScope)); Collection jars = JavaAutoModuleNameIndex.getFilesByKey(moduleName, excludingScope); if (!jars.isEmpty()) { - List automatic = jars.stream().map(f -> LightJavaModule.getModule(myManager, f)).collect(Collectors.toList()); - if (!automatic.isEmpty()) { - return sortModules(automatic, scope); - } + jars.stream().map(f -> LightJavaModule.getModule(myManager, f)).forEach(results::add); } - return Collections.emptyList(); + return upgradeModules(sortModules(results, scope), moduleName, scope); } private static class LibSrcExcludingScope extends DelegatingGlobalSearchScope { @@ -229,7 +222,7 @@ public class JavaFileManagerImpl implements JavaFileManager, Disposable { ModuleFileIndex index = ModuleRootManager.getInstance(module).getFileIndex(); for (ListIterator i = list.listIterator(); i.hasNext(); ) { PsiJavaModule candidate = i.next(); - if (index.getOrderEntryForFile(candidate.getContainingFile().getVirtualFile()) instanceof JdkOrderEntry) { + if (index.getOrderEntryForFile(PsiImplUtil.getModuleVirtualFile(candidate)) instanceof JdkOrderEntry) { if (i.previousIndex() > 0) { i.remove(); // not at the top -> is upgraded }