From 9d672aa0069c3fc823d6e1d3d856d97aa7b019bf Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 29 Nov 2018 16:26:01 +0300 Subject: [PATCH] cleanup --- .../compiler/impl/CompositeScope.java | 11 ++++---- .../compiler/impl/FileSetCompileScope.java | 9 ++++--- .../psi/search/GlobalSearchScope.java | 26 ++++++++++--------- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/CompositeScope.java b/java/compiler/impl/src/com/intellij/compiler/impl/CompositeScope.java index f168726d9c38..075a00fd5b0c 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/CompositeScope.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/CompositeScope.java @@ -24,7 +24,7 @@ import com.intellij.openapi.compiler.ExportableUserDataHolderBase; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.module.Module; import com.intellij.openapi.util.Key; -import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.ContainerUtil; import gnu.trove.THashSet; @@ -35,18 +35,18 @@ import java.util.*; public class CompositeScope extends ExportableUserDataHolderBase implements CompileScope{ private final List myScopes = new ArrayList<>(); - public CompositeScope(CompileScope scope1, CompileScope scope2) { + public CompositeScope(@NotNull CompileScope scope1, @NotNull CompileScope scope2) { addScope(scope1); addScope(scope2); } - public CompositeScope(CompileScope[] scopes) { + public CompositeScope(@NotNull CompileScope[] scopes) { for (CompileScope scope : scopes) { addScope(scope); } } - private void addScope(CompileScope scope) { + private void addScope(@NotNull CompileScope scope) { if (scope instanceof CompositeScope) { final CompositeScope compositeScope = (CompositeScope)scope; for (CompileScope childScope : compositeScope.myScopes) { @@ -68,7 +68,7 @@ public class CompositeScope extends ExportableUserDataHolderBase implements Comp ContainerUtil.addAll(allFiles, files); } } - return VfsUtil.toVirtualFileArray(allFiles); + return VfsUtilCore.toVirtualFileArray(allFiles); } @Override @@ -112,6 +112,7 @@ public class CompositeScope extends ExportableUserDataHolderBase implements Comp return super.getUserData(key); } + @NotNull public Collection getScopes() { return Collections.unmodifiableList(myScopes); } diff --git a/java/compiler/impl/src/com/intellij/compiler/impl/FileSetCompileScope.java b/java/compiler/impl/src/com/intellij/compiler/impl/FileSetCompileScope.java index f91e2b937571..1a5db513bcdc 100644 --- a/java/compiler/impl/src/com/intellij/compiler/impl/FileSetCompileScope.java +++ b/java/compiler/impl/src/com/intellij/compiler/impl/FileSetCompileScope.java @@ -25,6 +25,7 @@ import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileVisitor; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.*; @@ -37,7 +38,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements private Set myUrls; // urls caching private final Module[] myAffectedModules; - public FileSetCompileScope(final Collection files, Module[] modules) { + public FileSetCompileScope(@NotNull Collection files, @NotNull Module[] modules) { myAffectedModules = modules; ApplicationManager.getApplication().runReadAction( () -> { @@ -55,6 +56,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements return myAffectedModules; } + @NotNull public Collection getRootFiles() { return Collections.unmodifiableCollection(myRootFiles); } @@ -95,6 +97,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements return false; } + @NotNull private Set getUrls() { if (myUrls == null) { myUrls = new HashSet<>(); @@ -106,7 +109,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements return myUrls; } - private void addFile(VirtualFile file) { + private void addFile(@NotNull VirtualFile file) { if (file.isDirectory()) { myDirectoryUrls.add(file.getUrl() + "/"); } @@ -114,7 +117,7 @@ public class FileSetCompileScope extends ExportableUserDataHolderBase implements myUrls = null; } - private static void addRecursively(final Collection container, VirtualFile fromDirectory, final FileType fileType) { + private static void addRecursively(@NotNull Collection container, @NotNull VirtualFile fromDirectory, @Nullable FileType fileType) { VfsUtilCore.visitChildrenRecursively(fromDirectory, new VirtualFileVisitor(VirtualFileVisitor.SKIP_ROOT) { @Override public boolean visitFile(@NotNull VirtualFile child) { diff --git a/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java b/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java index af1383f19842..0c1684f673ee 100644 --- a/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java +++ b/platform/core-api/src/com/intellij/psi/search/GlobalSearchScope.java @@ -357,7 +357,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw */ @NotNull @Contract(pure = true) - public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection files) { + public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection files) { return filesScope(project, files, null); } @@ -369,20 +369,20 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw */ @NotNull @Contract(pure = true) - public static GlobalSearchScope filesWithoutLibrariesScope(@NotNull Project project, @NotNull Collection files) { + public static GlobalSearchScope filesWithoutLibrariesScope(@NotNull Project project, @NotNull Collection files) { if (files.isEmpty()) return EMPTY_SCOPE; return new FilesScope(project, files, false, false); } @NotNull @Contract(pure = true) - public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection files) { + public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection files) { return filesWithLibrariesScope(project, files, false); } @NotNull @Contract(pure = true) - public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection files, + public static GlobalSearchScope filesWithLibrariesScope(@NotNull Project project, @NotNull Collection files, boolean searchOutsideRootModel) { if (files.isEmpty()) return EMPTY_SCOPE; return new FilesScope(project, files, true, searchOutsideRootModel); @@ -393,7 +393,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw */ @NotNull @Contract(pure = true) - public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection files, @Nullable final String displayName) { + public static GlobalSearchScope filesScope(@NotNull Project project, @NotNull Collection files, @Nullable final String displayName) { if (files.isEmpty()) return EMPTY_SCOPE; return files.size() == 1? fileScope(project, files.iterator().next(), displayName) : new FilesScope(project, files) { @NotNull @@ -425,8 +425,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw private boolean containsScope(@NotNull GlobalSearchScope scope) { if (myScope1.equals(scope) || myScope2.equals(scope) || equals(scope)) return true; if (myScope1 instanceof IntersectionScope && ((IntersectionScope)myScope1).containsScope(scope)) return true; - if (myScope2 instanceof IntersectionScope && ((IntersectionScope)myScope2).containsScope(scope)) return true; - return false; + return myScope2 instanceof IntersectionScope && ((IntersectionScope)myScope2).containsScope(scope); } @NotNull @@ -494,6 +493,7 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw @Override public int calcHashCode() { + //noinspection deprecation return 31 * myScope1.hashCode() + myScope2.hashCode(); } @@ -791,16 +791,16 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw } public static class FilesScope extends GlobalSearchScope implements Iterable { - private final Collection myFiles; + private final Collection myFiles; private final boolean mySearchOutsideRootModel; private volatile Boolean myHasFilesOutOfProjectRoots; - private FilesScope(@Nullable Project project, @NotNull Collection files) { + private FilesScope(@Nullable Project project, @NotNull Collection files) { this(project, files, null, false); } // Optimization - private FilesScope(@Nullable Project project, @NotNull Collection files, @Nullable Boolean hasFilesOutOfProjectRoots, + private FilesScope(@Nullable Project project, @NotNull Collection files, @Nullable Boolean hasFilesOutOfProjectRoots, boolean searchOutsideRootModel) { super(project); myFiles = files; @@ -846,14 +846,16 @@ public abstract class GlobalSearchScope extends SearchScope implements ProjectAw @Override public String toString() { - List files = myFiles.size() <= 20 ? new ArrayList<>(myFiles) : new ArrayList<>(myFiles).subList(0, 20); + List files = ContainerUtil.getFirstItems(new ArrayList<>(myFiles), 20); return "Files: ("+ files +"); search in libraries: " + (myHasFilesOutOfProjectRoots != null ? myHasFilesOutOfProjectRoots : "unknown"); } @NotNull @Override public Iterator iterator() { - return myFiles.iterator(); + //noinspection unchecked + return (Iterator) // optimization hack: avoid copying in `new ArrayList(myFiles).iterator()` + myFiles.iterator(); } @Override