private void recomputeIndex() {
    myInfos.clear();
    Collection<? extends Map.Entry<VirtualFile, T>> roots = myRootSupplier.get();
    for (Map.Entry<VirtualFile, T> entry : roots) {
      VirtualFile virtualFile = entry.getKey();
      T value = entry.getValue();
      VfsUtil.iterateChildrenRecursively(virtualFile, null, fileOrDir -> {
        int id = ((VirtualFileWithId)fileOrDir).getId();
        myInfos.put(id, value);
        return true;
      });
    }
  }
private void recomputeIndex()