void (@NotNull VirtualFile file) { if (file.isDirectory() && file instanceof NewVirtualFile && !isRecursiveDeleteSupported()) { for (VirtualFile child : ((NewVirtualFile)file).getCachedChildren()) { ProgressManager.checkCanceled(); FileStatus status = myChangeListManager.getStatus(child); if (!filterOutByStatus(status)) { processBeforeDeletedFile(child); } } } else { FileStatus status = myChangeListManager.getStatus(file); if (filterOutByStatus(status) || shouldIgnoreDeletion(status)) return; FilePath filePath = VcsUtil.getFilePath(file); withLock(PROCESSING_LOCK.writeLock(), () -> { myDeletedFiles.add(filePath); }); } }