Include Fileset in path resolution.

PiperOrigin-RevId: 228909219
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java
index cce2a92..68d7b35 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java
@@ -55,7 +55,9 @@
 
   interface PathResolverFactory {
     ArtifactPathResolver createPathResolverForArtifactValues(
-        ActionInputMap actionInputMap, Map<Artifact, Collection<Artifact>> expandedArtifacts);
+        ActionInputMap actionInputMap,
+        Map<Artifact, Collection<Artifact>> expandedArtifacts,
+        Iterable<Artifact> filesets);
 
     boolean shouldCreatePathResolverForArtifactValues();
   }
@@ -353,6 +355,9 @@
               input,
               artifactValue,
               env);
+          if (input.isFileset()) {
+            expandedFilesets.put(input, ActionInputMapHelper.getFilesets(env, input));
+          }
         }
       } catch (MissingInputFileException e) {
         missingCount++;
@@ -402,7 +407,8 @@
 
     ArtifactPathResolver pathResolver =
         createPathResolver
-            ? pathResolverFactory.createPathResolverForArtifactValues(inputMap, expandedArtifacts)
+            ? pathResolverFactory.createPathResolverForArtifactValues(
+                inputMap, expandedArtifacts, expandedFilesets.keySet())
             : ArtifactPathResolver.IDENTITY;
 
     ExtendedEventHandler.Postable postable =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 25f25db..749dd4b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -338,7 +338,9 @@
 
     @Override
     public ArtifactPathResolver createPathResolverForArtifactValues(
-        ActionInputMap actionInputMap, Map<Artifact, Collection<Artifact>> expandedArtifacts) {
+        ActionInputMap actionInputMap,
+        Map<Artifact, Collection<Artifact>> expandedArtifacts,
+        Iterable<Artifact> filesets) {
       Preconditions.checkState(shouldCreatePathResolverForArtifactValues());
       return outputService.createPathResolverForArtifactValues(
           directories.getExecRoot().asFragment(),
@@ -346,7 +348,8 @@
           fileSystem,
           getPathEntries(),
           actionInputMap,
-          expandedArtifacts);
+          expandedArtifacts,
+          filesets);
     }
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java b/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
index 02c68cf..5c5d4f2 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
@@ -163,7 +163,8 @@
       FileSystem fileSystem,
       ImmutableList<Root> pathEntries,
       ActionInputMap actionInputMap,
-      Map<Artifact, Collection<Artifact>> expandedArtifacts) {
+      Map<Artifact, Collection<Artifact>> expandedArtifacts,
+      Iterable<Artifact> filesets) {
     throw new IllegalStateException("Path resolver not supported by this class");
   }
 }