diff --git a/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java b/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java index 8e35a4f739dd..375897962e9f 100644 --- a/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java +++ b/platform/analysis-impl/src/com/intellij/codeInspection/reference/RefManagerImpl.java @@ -29,10 +29,7 @@ import com.intellij.openapi.util.NullableFactory; import com.intellij.openapi.util.Segment; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.VfsUtilCore; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileManager; -import com.intellij.openapi.vfs.VirtualFileWithId; +import com.intellij.openapi.vfs.*; import com.intellij.psi.*; import com.intellij.psi.impl.light.LightElement; import com.intellij.psi.util.PsiUtilCore; @@ -61,7 +58,7 @@ public class RefManagerImpl extends RefManager { private AnalysisScope myScope; private RefProject myRefProject; - private final BitSet myUnprocessedFiles = new BitSet(); + private final Set myUnprocessedFiles = VfsUtilCore.createCompactVirtualFileSet(); private final boolean processExternalElements = Registry.is("batch.inspections.process.external.elements"); private final ConcurrentMap myRefTable = new ConcurrentHashMap<>(); @@ -399,7 +396,7 @@ public class RefManagerImpl extends RefManager { @Override public synchronized boolean isInGraph(VirtualFile file) { - return !myUnprocessedFiles.get(((VirtualFileWithId)file).getId()); + return !myUnprocessedFiles.contains(file); } @Override @@ -410,8 +407,8 @@ public class RefManagerImpl extends RefManager { return extension.getElementContainer(element); } - private synchronized void registerUnprocessed(VirtualFileWithId virtualFile) { - myUnprocessedFiles.set(virtualFile.getId()); + private synchronized void registerUnprocessed(VirtualFile virtualFile) { + myUnprocessedFiles.add(virtualFile); } void removeReference(@NotNull RefElement refElem) { @@ -463,7 +460,7 @@ public class RefManagerImpl extends RefManager { if (element instanceof PsiFile) { VirtualFile virtualFile = PsiUtilCore.getVirtualFile(element); if (virtualFile instanceof VirtualFileWithId) { - registerUnprocessed((VirtualFileWithId)virtualFile); + registerUnprocessed(virtualFile); } } } else {