@NotNull
  List<RemovedMapping> removeIf(@NotNull Predicate<? super RemovedMapping> predicate) {
    List<RemovedMapping> result = new ArrayList<>();
    for (Iterator<Map.Entry<FileNameMatcher, Collection<RemovedMapping>>> iterator = myRemovedMappings.entrySet().iterator();
         iterator.hasNext(); ) {
      Map.Entry<FileNameMatcher, Collection<RemovedMapping>> entry = iterator.next();
      Collection<RemovedMapping> mappings = entry.getValue();
      mappings.removeIf(mapping -> {
        boolean toRemove = predicate.test(mapping);
        if (toRemove) {
          result.add(mapping);
        }
        return toRemove;
      });
      if (mappings.isEmpty()) {
        iterator.remove();
      }
    }
    return result;
  }
@NotNull
  List<RemovedMapping> removeIf(@NotNull Predicate<? super RemovedMapping> predicate)