void (@NotNull Predicate<? super VirtualFile> c) { for (Map.Entry<String, T> entry : myCachedFiles.entrySet()) { T t = entry.getValue(); if (t == null || !c.test(t)) { //CFM::entrySet returns copy myCachedFiles.remove(entry.getKey()); } } }