@Override
  public @Nullable VirtualFileEnumeration extractFileEnumeration() {
    if (myModules.size() == 1) { // otherwise may be expensive
      // optimization: for self-contained module compute the set of files in its content, to make filtering in indexing faster
      Module module = myModules.iterator().next();
      CachedValueProvider<VirtualFileEnumeration> provider = () -> {
        VirtualFile[] roots = ModuleRootManager.getInstance(module).getContentRoots();
        VirtualFileEnumeration enumeration = ModuleWithDependenciesScope.getFileEnumerationUnderRoots(List.of(roots));
        return CachedValueProvider.Result.create(enumeration, VirtualFileManager.VFS_STRUCTURE_MODIFICATIONS);
      };
      CachedValuesManager cachedValuesManager = CachedValuesManager.getManager(module.getProject());
      return cachedValuesManager.getCachedValue(module, CACHED_FILE_ID_ENUMERATIONS_KEY, provider, false);
    }
    return null;
  }
@Override
  public @Nullable VirtualFileEnumeration extractFileEnumeration()