DirtyScopeTestInfo () { synchronized (myLock) { final Module[] vfsChangedModules = myVFSChangedModules.toArray(Module.EMPTY_ARRAY); final List<Module> unsavedChangedModuleList = new ArrayList<>(getAllDirtyModules()); ContainerUtil.removeAll(unsavedChangedModuleList, vfsChangedModules); final Module[] unsavedChangedModules = unsavedChangedModuleList.toArray(Module.EMPTY_ARRAY); //noinspection unchecked final List<VirtualFile> excludedFiles = myExcludedFilesScope instanceof Iterable ? ContainerUtil.newArrayList((Iterable<VirtualFile>)myExcludedFilesScope) : Collections.emptyList(); return new DirtyScopeTestInfo(vfsChangedModules, unsavedChangedModules, excludedFiles.toArray(VirtualFile.EMPTY_ARRAY), getDirtyScope()); } }