boolean (@NotNull Collection<? extends VirtualFile> c) { if (frozen) { throw new IllegalStateException(); } if (c instanceof CompactVirtualFileSet) { boolean modified = false; CompactVirtualFileSet setToAdd = (CompactVirtualFileSet)c; for (VirtualFile file : setToAdd.weirdFiles) { if (add(file)) { modified = true; } } IntIterator toAdd; if (setToAdd.idSet != null) { toAdd = setToAdd.idSet.intIterator(); } else if (setToAdd.fileIds != null) { toAdd = IntIterators.asIntIterator(setToAdd.fileIds.stream().iterator()); } else { return modified; } while (toAdd.hasNext()) { int id = toAdd.nextInt(); if (fileIds == null && idSet == null) { convertToIntSet(); } if (fileIds != null) { modified = !fileIds.get(id); fileIds.set(id); } else if (idSet != null) { modified = idSet.add(id); if (idSet.size() > BIT_SET_LIMIT) { convertToBitSet(); } } else { throw new IllegalStateException(); } } return modified; } else { return super.addAll(c); } }