boolean (@NotNull IntCollection ids, @NotNull GlobalSearchScope filter, @NotNull Processor<? super VirtualFile> processor) { // ensure predictable order because result might be cached by consumer IntList sortedIds = new IntArrayList(ids); sortedIds.sort(null); for (IntIterator iterator = sortedIds.iterator(); iterator.hasNext(); ) { ProgressManager.checkCanceled(); int id = iterator.nextInt(); VirtualFile file = findFileById(id); if (file != null && filter.contains(file)) { boolean processNext = processor.process(file); ProgressManager.checkCanceled(); if (!processNext) { return false; } } } return true; }