Push the IgnoredSubdirectories abstraction a little further, everywhere other than diff awareness.

Progress towards #9037.

RELNOTES: None.
PiperOrigin-RevId: 686063047
Change-Id: If27b64213ed51f0b5f8c361c657b9bba2d7511f6
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java b/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java
index 49b1fd6..ad04691 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/repository/starlark/StarlarkRepositoryContextTest.java
@@ -31,6 +31,7 @@
 import com.google.devtools.build.lib.analysis.ServerDirectories;
 import com.google.devtools.build.lib.analysis.util.AnalysisMock;
 import com.google.devtools.build.lib.bazel.repository.downloader.DownloadManager;
+import com.google.devtools.build.lib.cmdline.IgnoredSubdirectories;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.cmdline.RepositoryMapping;
 import com.google.devtools.build.lib.events.ExtendedEventHandler;
@@ -141,7 +142,7 @@
 
   private void setUpContextForRule(
       Map<String, Object> kwargs,
-      ImmutableSet<PathFragment> ignoredPathFragments,
+      IgnoredSubdirectories ignoredSubdirectories,
       ImmutableMap<String, String> envVariables,
       StarlarkSemantics starlarkSemantics,
       @Nullable RepositoryRemoteExecutor repoRemoteExecutor,
@@ -190,7 +191,7 @@
             rule,
             packageLocator,
             outputDirectory,
-            ignoredPathFragments,
+            ignoredSubdirectories,
             environment,
             envVariables,
             downloader,
@@ -210,7 +211,7 @@
       throws Exception {
     setUpContextForRule(
         ImmutableMap.of("name", name),
-        ImmutableSet.of(),
+        IgnoredSubdirectories.EMPTY,
         ImmutableMap.of("FOO", "BAR"),
         starlarkSemantics,
         /* repoRemoteExecutor= */ null);
@@ -220,7 +221,7 @@
   public void testAttr() throws Exception {
     setUpContextForRule(
         ImmutableMap.of("name", "test", "foo", "bar"),
-        ImmutableSet.of(),
+        IgnoredSubdirectories.EMPTY,
         ImmutableMap.of("FOO", "BAR"),
         StarlarkSemantics.DEFAULT,
         /* repoRemoteExecutor= */ null,
@@ -234,7 +235,7 @@
   public void testWhich() throws Exception {
     setUpContextForRule(
         ImmutableMap.of("name", "test"),
-        ImmutableSet.of(),
+        IgnoredSubdirectories.EMPTY,
         ImmutableMap.of("PATH", String.join(File.pathSeparator, "/bin", "/path/sbin", ".")),
         StarlarkSemantics.DEFAULT,
         /* repoRemoteExecutor= */ null);
@@ -325,7 +326,7 @@
     scratch.file(underWorkspace.getPathString(), "123");
     setUpContextForRule(
         ImmutableMap.of("name", "test"),
-        ImmutableSet.of(PathFragment.create("under_workspace")),
+        IgnoredSubdirectories.of(ImmutableSet.of(PathFragment.create("under_workspace"))),
         ImmutableMap.of("FOO", "BAR"),
         StarlarkSemantics.DEFAULT,
         /* repoRemoteExecutor= */ null);
@@ -443,7 +444,7 @@
 
     setUpContextForRule(
         attrValues,
-        ImmutableSet.of(),
+        IgnoredSubdirectories.EMPTY,
         ImmutableMap.of("FOO", "BAR"),
         StarlarkSemantics.builder()
             .setBool(BuildLanguageOptions.EXPERIMENTAL_REPO_REMOTE_EXEC, true)
diff --git a/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java b/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java
index 0469085..f5ef624 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/GlobCacheTest.java
@@ -19,6 +19,7 @@
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.devtools.build.lib.actions.ThreadStateReceiver;
+import com.google.devtools.build.lib.cmdline.IgnoredSubdirectories;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
 import com.google.devtools.build.lib.packages.Globber.BadGlobException;
 import com.google.devtools.build.lib.testutil.Scratch;
@@ -109,7 +110,7 @@
         new GlobCache(
             packageDirectory,
             PackageIdentifier.createInMainRepo("isolated"),
-            ImmutableSet.copyOf(ignoredDirectories),
+            IgnoredSubdirectories.of(ImmutableSet.copyOf(ignoredDirectories)),
             new CachingPackageLocator() {
               @Override
               public Path getBuildFileForPackage(PackageIdentifier packageId) {
diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
index 42de75e..e0e33c6 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
@@ -20,11 +20,11 @@
 import static org.junit.Assert.fail;
 
 import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.devtools.build.lib.actions.ThreadStateReceiver;
 import com.google.devtools.build.lib.analysis.config.FeatureSet;
+import com.google.devtools.build.lib.cmdline.IgnoredSubdirectories;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.cmdline.LabelSyntaxException;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
@@ -1880,7 +1880,7 @@
           new GlobCache(
               pkg.getFilename().asPath().getParentDirectory(),
               pkg.getPackageIdentifier(),
-              ImmutableSet.of(),
+              IgnoredSubdirectories.EMPTY,
               // a package locator that finds no packages
               new CachingPackageLocator() {
                 @Override
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java
index d144e6f..d15d9d8 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/AbstractCollectPackagesUnderDirectoryTest.java
@@ -352,7 +352,7 @@
       String directory, ImmutableSet<PathFragment> excludedPaths) throws InterruptedException {
     SkyKey key =
         CollectPackagesUnderDirectoryValue.key(
-            RepositoryName.MAIN, rootedPath(directory), new IgnoredSubdirectories(excludedPaths));
+            RepositoryName.MAIN, rootedPath(directory), IgnoredSubdirectories.of(excludedPaths));
     return evaluate(key).get(key);
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java
index 0726532..76e259d 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryFunctionTest.java
@@ -82,7 +82,7 @@
       Path root, PathFragment rootRelativePath, ImmutableSet<PathFragment> excludedPaths) {
     RootedPath rootedPath = RootedPath.toRootedPath(Root.fromPath(root), rootRelativePath);
     return CollectPackagesUnderDirectoryValue.key(
-        RepositoryName.MAIN, rootedPath, new IgnoredSubdirectories(excludedPaths));
+        RepositoryName.MAIN, rootedPath, IgnoredSubdirectories.of(excludedPaths));
   }
 
   private static SkyKey createPrepDepsKey(Path root, PathFragment rootRelativePath) {
@@ -93,7 +93,7 @@
       Path root, PathFragment rootRelativePath, ImmutableSet<PathFragment> excludedPaths) {
     RootedPath rootedPath = RootedPath.toRootedPath(Root.fromPath(root), rootRelativePath);
     return PrepareDepsOfTargetsUnderDirectoryValue.key(
-        RepositoryName.MAIN, rootedPath, new IgnoredSubdirectories(excludedPaths));
+        RepositoryName.MAIN, rootedPath, IgnoredSubdirectories.of(excludedPaths));
   }
 
   private static SkyKey createPrepDepsKey(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryKeyCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryKeyCodecTest.java
index faddc50..1afee80 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryKeyCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryKeyCodecTest.java
@@ -36,7 +36,7 @@
                 new RecursivePkgKey(
                     RepositoryName.MAIN,
                     FsUtils.TEST_ROOTED_PATH,
-                    new IgnoredSubdirectories(ImmutableSet.of(FsUtils.rootPathRelative("here")))),
+                    IgnoredSubdirectories.of(ImmutableSet.of(FsUtils.rootPathRelative("here")))),
                 FilteringPolicies.and(
                     FilteringPolicies.NO_FILTER, FilteringPolicies.FILTER_TESTS)));
     FsUtils.addDependencies(serializationTester);
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java
index f2d68e9..8cb11db 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunctionTest.java
@@ -50,7 +50,7 @@
       Path root, PathFragment rootRelativePath, ImmutableSet<PathFragment> excludedPaths) {
     RootedPath rootedPath = RootedPath.toRootedPath(Root.fromPath(root), rootRelativePath);
     return RecursivePkgValue.key(
-        RepositoryName.MAIN, rootedPath, new IgnoredSubdirectories(excludedPaths));
+        RepositoryName.MAIN, rootedPath, IgnoredSubdirectories.of(excludedPaths));
   }
 
   private RecursivePkgValue buildRecursivePkgValue(Path root, PathFragment rootRelativePath)
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java
index 1246265..461d0f5 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursivePkgKeyTest.java
@@ -36,7 +36,7 @@
       PathFragment rootRelativePath,
       ImmutableSet<PathFragment> excludedPaths) {
     RootedPath rootedPath = RootedPath.toRootedPath(Root.fromPath(rootDirectory), rootRelativePath);
-    return RecursivePkgValue.key(repository, rootedPath, new IgnoredSubdirectories(excludedPaths));
+    return RecursivePkgValue.key(repository, rootedPath, IgnoredSubdirectories.of(excludedPaths));
   }
 
   private void invalidHelper(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RecursivePkgKeyCodecTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RecursivePkgKeyCodecTest.java
index 3efecfa..89e2c03 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RecursivePkgKeyCodecTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/serialization/RecursivePkgKeyCodecTest.java
@@ -36,7 +36,7 @@
             new RecursivePkgKey(
                 RepositoryName.MAIN,
                 FsUtils.TEST_ROOTED_PATH,
-                new IgnoredSubdirectories(
+                IgnoredSubdirectories.of(
                     ImmutableSet.of(
                         FsUtils.rootPathRelative("here"), FsUtils.rootPathRelative("there")))));
     FsUtils.addDependencies(serializationTester);