import com.intellij.openapi.vfs.VirtualFile; import com.example.CustomVirtualFile; class UnsafeVfsRecursion { void processDirectoryRecursive(VirtualFile dir) { for (VirtualFile file : dir.getChildren()) { if (!file.isDirectory()) { // process file } else { processDirectoryRecursive(file); // recursive call } } } void processDirectoryRecursiveSubclassUsed(CustomVirtualFile dir) { for (VirtualFile file : dir.getChildren()) { if (!file.isDirectory()) { // process file } else if (dir instanceof CustomVirtualFile) { processDirectoryRecursiveSubclassUsed((CustomVirtualFile)file); // recursive call } } } }