void (@NotNull List<? extends FilePropertyPusher<?>> pushers, @NotNull List<? extends IndexableFileScanner> scanners, @NotNull IndexableFilesIterator indexableFilesIterator) { List<IndexableFileScanner.IndexableFileVisitor> sessions = ContainerUtil.mapNotNull(scanners, visitor -> visitor.startSession(myProject).createVisitor(indexableFilesIterator.getOrigin())); indexableFilesIterator.iterateFiles(myProject, fileOrDir -> { applyPushersToFile(fileOrDir, pushers, null); applyScannersToFile(fileOrDir, sessions); return true; }, IndexableFilesDeduplicateFilter.create()); finishVisitors(sessions); }