Move FileValue.Key and DirectoryListingValue.Key into the same JAR file.
Also moves FileValue.FILE to SkyFunctions.FILE.
Gives FileKey and DirectoryListingKey a common, sealed based type,
FileSystemOperationNode, which induces a cyclic dependency between these
types, requiring them to be in the same JAR file.
The next change will introduce a NestedSet-like type for these using
a composite pattern. Giving them a common sealed base type preserves
type-safety while avoiding unnecessary wrappers for unary nodes.
PiperOrigin-RevId: 688331584
Change-Id: Ic3971ef49ab4d74663cab2cfe35e523bd88aebff
diff --git a/src/main/java/com/google/devtools/build/lib/actions/BUILD b/src/main/java/com/google/devtools/build/lib/actions/BUILD
index fce167a..a0cb04a 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/actions/BUILD
@@ -459,7 +459,7 @@
":has_digest",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/io:inconsistent_filesystem_exception",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe:filesystem_keys",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec:serialization-constant",
"//src/main/java/com/google/devtools/build/lib/util",
diff --git a/src/main/java/com/google/devtools/build/lib/actions/FileValue.java b/src/main/java/com/google/devtools/build/lib/actions/FileValue.java
index 3d1ffdf..c5a82ea 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/FileValue.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/FileValue.java
@@ -19,13 +19,9 @@
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.FileKey;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
-import com.google.devtools.build.skyframe.AbstractSkyKey;
-import com.google.devtools.build.skyframe.SkyFunctionName;
-import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
import java.util.Objects;
import javax.annotation.Nullable;
@@ -51,10 +47,6 @@
@Immutable
@ThreadSafe
public interface FileValue extends SkyValue {
- // Depends non-hermetically on package path, but that is under the control of a flag, so use
- // semi-hermetic.
- public static final SkyFunctionName FILE = SkyFunctionName.createSemiHermetic("FILE");
-
default boolean exists() {
return realFileStateValue().getType() != FileStateType.NONEXISTENT;
}
@@ -151,39 +143,8 @@
/** Returns a key for building a file value for the given root-relative path. */
@ThreadSafe
- static Key key(RootedPath rootedPath) {
- return Key.create(rootedPath);
- }
-
- /** Key type for FileValue. */
- @VisibleForSerialization
- @AutoCodec
- class Key extends AbstractSkyKey<RootedPath> {
- private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
-
- private Key(RootedPath arg) {
- super(arg);
- }
-
- private static Key create(RootedPath arg) {
- return interner.intern(new Key(arg));
- }
-
- @VisibleForSerialization
- @AutoCodec.Interner
- static Key intern(Key key) {
- return interner.intern(key);
- }
-
- @Override
- public SkyFunctionName functionName() {
- return FILE;
- }
-
- @Override
- public SkyKeyInterner<Key> getSkyKeyInterner() {
- return interner;
- }
+ static FileKey key(RootedPath rootedPath) {
+ return FileKey.create(rootedPath);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/producers/BUILD b/src/main/java/com/google/devtools/build/lib/packages/producers/BUILD
index 302f057..889ebec 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/producers/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/packages/producers/BUILD
@@ -22,9 +22,8 @@
"//src/main/java/com/google/devtools/build/lib/io:inconsistent_filesystem_exception",
"//src/main/java/com/google/devtools/build/lib/packages:globber",
"//src/main/java/com/google/devtools/build/lib/skyframe:directory_listing_value",
+ "//src/main/java/com/google/devtools/build/lib/skyframe:filesystem_keys",
"//src/main/java/com/google/devtools/build/lib/skyframe:glob_descriptor",
- "//src/main/java/com/google/devtools/build/lib/skyframe:globs_value",
- "//src/main/java/com/google/devtools/build/lib/skyframe:ignored_package_prefixes_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:package_lookup_value",
"//src/main/java/com/google/devtools/build/lib/util:pair",
"//src/main/java/com/google/devtools/build/lib/vfs",
diff --git a/src/main/java/com/google/devtools/build/lib/packages/producers/PatternWithWildcardProducer.java b/src/main/java/com/google/devtools/build/lib/packages/producers/PatternWithWildcardProducer.java
index d3594cb..0f7a448 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/producers/PatternWithWildcardProducer.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/producers/PatternWithWildcardProducer.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.lib.io.InconsistentFilesystemException;
import com.google.devtools.build.lib.packages.producers.GlobComputationProducer.GlobDetail;
import com.google.devtools.build.lib.skyframe.DirectoryListingValue;
+import com.google.devtools.build.lib.skyframe.FileKey;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.vfs.Dirent;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -64,7 +65,7 @@
private DirectoryListingValue directoryListingValue = null;
/** Holds both symlink path and target path for all symlink type dirents. */
- private ArrayList<Pair<FileValue.Key, FileValue>> symlinks = null;
+ private ArrayList<Pair<FileKey, FileValue>> symlinks = null;
private int symlinksCount = 0;
@Nullable private final Set<Pair<PathFragment, Integer>> visitedGlobSubTasks;
@@ -151,7 +152,7 @@
}
@Override
- public void acceptSymlinkFileValue(FileValue symlinkValue, FileValue.Key symlinkKey) {
+ public void acceptSymlinkFileValue(FileValue symlinkValue, FileKey symlinkKey) {
symlinks.add(Pair.of(symlinkKey, symlinkValue));
}
@@ -168,8 +169,8 @@
return DONE;
}
- for (Pair<FileValue.Key, FileValue> symlink : symlinks) {
- FileValue.Key symlinkKey = symlink.first;
+ for (Pair<FileKey, FileValue> symlink : symlinks) {
+ FileKey symlinkKey = symlink.first;
FileValue symlinkValue = symlink.second;
if (!symlinkValue.exists()) {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/producers/SymlinkProducer.java b/src/main/java/com/google/devtools/build/lib/packages/producers/SymlinkProducer.java
index c7f77ab..69af593 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/producers/SymlinkProducer.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/producers/SymlinkProducer.java
@@ -16,12 +16,13 @@
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.io.InconsistentFilesystemException;
+import com.google.devtools.build.lib.skyframe.FileKey;
import com.google.devtools.build.skyframe.SkyValue;
import com.google.devtools.build.skyframe.state.StateMachine;
import java.util.function.Consumer;
/**
- * Looks up {@link FileValue} for a {@link FileValue.Key} which is guaranteed to be a symlink.
+ * Looks up {@link FileValue} for a {@link FileKey} which is guaranteed to be a symlink.
*
* <p>Used when {@link PatternWithWildcardProducer} handles {@link
* com.google.devtools.build.lib.skyframe.DirectoryListingValue}. For any {@link
@@ -40,18 +41,18 @@
final class SymlinkProducer implements StateMachine, Consumer<SkyValue> {
interface ResultSink {
- void acceptSymlinkFileValue(FileValue symlinkValue, FileValue.Key symlinkKey);
+ void acceptSymlinkFileValue(FileValue symlinkValue, FileKey symlinkKey);
void acceptInconsistentFilesystemException(InconsistentFilesystemException exception);
}
// -------------------- Input --------------------
- private final FileValue.Key symlinkKey;
+ private final FileKey symlinkKey;
// -------------------- Output --------------------
private final ResultSink resultSink;
- SymlinkProducer(FileValue.Key symlinkKey, ResultSink resultSink) {
+ SymlinkProducer(FileKey symlinkKey, ResultSink resultSink) {
this.symlinkKey = symlinkKey;
this.resultSink = resultSink;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/BUILD b/src/main/java/com/google/devtools/build/lib/rules/BUILD
index 8203790..1732475 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/BUILD
@@ -344,6 +344,7 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:client_environment_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:directory_listing_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:directory_tree_digest_value",
+ "//src/main/java/com/google/devtools/build/lib/skyframe:filesystem_keys",
"//src/main/java/com/google/devtools/build/lib/skyframe:precomputed_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:repository_mapping_value",
"//src/main/java/com/google/devtools/build/lib/util",
diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepoRecordedInput.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepoRecordedInput.java
index 604bb58..546743f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepoRecordedInput.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepoRecordedInput.java
@@ -31,6 +31,7 @@
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.skyframe.ActionEnvironmentFunction;
import com.google.devtools.build.lib.skyframe.ClientEnvironmentValue;
+import com.google.devtools.build.lib.skyframe.DirectoryListingKey;
import com.google.devtools.build.lib.skyframe.DirectoryListingValue;
import com.google.devtools.build.lib.skyframe.DirectoryTreeDigestValue;
import com.google.devtools.build.lib.skyframe.PrecomputedValue;
@@ -461,7 +462,7 @@
}
try {
return oldValue.equals(
- getDirentsMarkerValue(((DirectoryListingValue.Key) skyKey).argument().asPath()));
+ getDirentsMarkerValue(((DirectoryListingKey) skyKey).argument().asPath()));
} catch (IOException e) {
return false;
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
index 1170245..58dfc5d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -135,6 +135,7 @@
":execution_finished_event",
":file_function",
":fileset_entry_function",
+ ":filesystem_keys",
":filesystem_value_checker",
":glob_descriptor",
":glob_function",
@@ -1354,11 +1355,9 @@
deps = [
":directory_listing_state_value",
":dirents",
- ":sky_functions",
+ ":filesystem_keys",
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/concurrent",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
- "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
],
@@ -1370,6 +1369,7 @@
deps = [
":directory_listing_value",
":directory_tree_digest_value",
+ ":filesystem_keys",
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/util",
"//src/main/java/com/google/devtools/build/lib/vfs",
@@ -1501,6 +1501,22 @@
)
java_library(
+ name = "filesystem_keys",
+ srcs = [
+ "DirectoryListingKey.java",
+ "FileKey.java",
+ "FileSystemOperationNode.java",
+ ],
+ deps = [
+ ":sky_functions",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization:visible-for-serialization",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
+ "//src/main/java/com/google/devtools/build/lib/vfs",
+ "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects",
+ ],
+)
+
+java_library(
name = "filesystem_value_checker",
srcs = [
"FileSystemValueCheckerInferringAncestors.java",
@@ -2183,6 +2199,7 @@
":detailed_exceptions",
":directory_listing_value",
":dirents",
+ ":filesystem_keys",
":package_lookup_value",
":sky_functions",
":tree_artifact_value",
@@ -3226,7 +3243,6 @@
srcs = ["NodeDroppingInconsistencyReceiver.java"],
deps = [
":sky_functions",
- "//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/rules/genquery:genquery_package_providers",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/skyframe",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingKey.java
new file mode 100644
index 0000000..485aad5
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingKey.java
@@ -0,0 +1,55 @@
+// Copyright 2014 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.skyframe;
+
+import static com.google.devtools.build.lib.skyframe.SkyFunctions.DIRECTORY_LISTING;
+
+import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.vfs.RootedPath;
+import com.google.devtools.build.skyframe.AbstractSkyKey;
+import com.google.devtools.build.skyframe.SkyFunctionName;
+import com.google.devtools.build.skyframe.SkyKey;
+
+/** Key for {@link DirectoryListingFunction}. */
+@AutoCodec
+public final class DirectoryListingKey extends AbstractSkyKey<RootedPath>
+ implements FileSystemOperationNode {
+
+ private static final SkyKeyInterner<DirectoryListingKey> interner = SkyKey.newInterner();
+
+ public static DirectoryListingKey create(RootedPath arg) {
+ return interner.intern(new DirectoryListingKey(arg));
+ }
+
+ private DirectoryListingKey(RootedPath arg) {
+ super(arg);
+ }
+
+ @VisibleForSerialization
+ @AutoCodec.Interner
+ static DirectoryListingKey intern(DirectoryListingKey key) {
+ return interner.intern(key);
+ }
+
+ @Override
+ public SkyFunctionName functionName() {
+ return DIRECTORY_LISTING;
+ }
+
+ @Override
+ public SkyKeyInterner<DirectoryListingKey> getSkyKeyInterner() {
+ return interner;
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java
index 02da3e5..1440094 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryListingValue.java
@@ -16,12 +16,7 @@
import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.vfs.RootedPath;
-import com.google.devtools.build.skyframe.AbstractSkyKey;
-import com.google.devtools.build.skyframe.SkyFunctionName;
-import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
import java.util.Objects;
@@ -58,39 +53,8 @@
* directory listing on its parent directory).
*/
@ThreadSafe
- public static Key key(RootedPath directoryUnderRoot) {
- return Key.create(directoryUnderRoot);
- }
-
- /** Key type for DirectoryListingValue. */
- @VisibleForSerialization
- @AutoCodec
- public static class Key extends AbstractSkyKey<RootedPath> {
- private static final SkyKeyInterner<Key> interner = SkyKey.newInterner();
-
- private Key(RootedPath arg) {
- super(arg);
- }
-
- private static Key create(RootedPath arg) {
- return interner.intern(new Key(arg));
- }
-
- @VisibleForSerialization
- @AutoCodec.Interner
- static Key intern(Key key) {
- return interner.intern(key);
- }
-
- @Override
- public SkyFunctionName functionName() {
- return SkyFunctions.DIRECTORY_LISTING;
- }
-
- @Override
- public SkyKeyInterner<Key> getSkyKeyInterner() {
- return interner;
- }
+ public static DirectoryListingKey key(RootedPath directoryUnderRoot) {
+ return DirectoryListingKey.create(directoryUnderRoot);
}
static DirectoryListingValue value(RootedPath dirRootedPath, FileValue dirFileValue,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunction.java
index 80ad4ab..7f976a7 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunction.java
@@ -96,7 +96,7 @@
private static ImmutableList<Pair<RootedPath, FileValue>> getFileValues(
Environment env, ImmutableSet<String> sortedDirents, RootedPath rootedPath)
throws InterruptedException {
- ImmutableSet<FileValue.Key> fileValueKeys =
+ ImmutableSet<FileKey> fileValueKeys =
sortedDirents.stream()
.map(
dirent ->
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileKey.java
new file mode 100644
index 0000000..47c4b00
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileKey.java
@@ -0,0 +1,53 @@
+// Copyright 2024 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.skyframe;
+
+import static com.google.devtools.build.lib.skyframe.SkyFunctions.FILE;
+
+import com.google.devtools.build.lib.skyframe.serialization.VisibleForSerialization;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.vfs.RootedPath;
+import com.google.devtools.build.skyframe.AbstractSkyKey;
+import com.google.devtools.build.skyframe.SkyFunctionName;
+import com.google.devtools.build.skyframe.SkyKey;
+
+/** Key for {@link FileFunction}. */
+@AutoCodec
+public final class FileKey extends AbstractSkyKey<RootedPath> implements FileSystemOperationNode {
+ private static final SkyKeyInterner<FileKey> interner = SkyKey.newInterner();
+
+ public static FileKey create(RootedPath arg) {
+ return interner.intern(new FileKey(arg));
+ }
+
+ private FileKey(RootedPath arg) {
+ super(arg);
+ }
+
+ @VisibleForSerialization
+ @AutoCodec.Interner
+ static FileKey intern(FileKey key) {
+ return interner.intern(key);
+ }
+
+ @Override
+ public SkyFunctionName functionName() {
+ return FILE;
+ }
+
+ @Override
+ public SkyKeyInterner<FileKey> getSkyKeyInterner() {
+ return interner;
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileSystemOperationNode.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileSystemOperationNode.java
new file mode 100644
index 0000000..30c03ee
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileSystemOperationNode.java
@@ -0,0 +1,17 @@
+// Copyright 2024 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.skyframe;
+
+/** A {@link FileKey} or {@link DirectoryListingKey}. */
+public sealed interface FileSystemOperationNode permits FileKey, DirectoryListingKey {}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/NodeDroppingInconsistencyReceiver.java b/src/main/java/com/google/devtools/build/lib/skyframe/NodeDroppingInconsistencyReceiver.java
index c3d790c..89b2482 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/NodeDroppingInconsistencyReceiver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/NodeDroppingInconsistencyReceiver.java
@@ -15,7 +15,6 @@
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.rules.genquery.GenQueryDirectPackageProviderFactory;
import com.google.devtools.build.lib.vfs.FileStateKey;
import com.google.devtools.build.skyframe.GraphInconsistencyReceiver;
@@ -42,7 +41,7 @@
private final boolean skymeldInconsistenciesExpected;
private static final ImmutableMap<SkyFunctionName, SkyFunctionName> EXPECTED_MISSING_CHILDREN =
ImmutableMap.of(
- FileValue.FILE, FileStateKey.FILE_STATE,
+ SkyFunctions.FILE, FileStateKey.FILE_STATE,
SkyFunctions.DIRECTORY_LISTING, SkyFunctions.DIRECTORY_LISTING_STATE,
SkyFunctions.CONFIGURED_TARGET, GenQueryDirectPackageProviderFactory.GENQUERY_SCOPE);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java
index 1a8cd4e..9cdabdd 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunction.java
@@ -732,7 +732,7 @@
if (value == null) {
continue;
}
- if (key instanceof FileValue.Key fileKey) {
+ if (key instanceof FileKey fileKey) {
FileInfo fileInfo =
toFileInfo(
fileKey.argument(),
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
index a4b2b98..20a1d1e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SequencedSkyframeExecutor.java
@@ -33,7 +33,6 @@
import com.google.devtools.build.lib.actions.ActionLookupData;
import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.actions.CommandLineExpansionException;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.actions.RemoteArtifactChecker;
import com.google.devtools.build.lib.analysis.AnalysisOptions;
import com.google.devtools.build.lib.analysis.AspectValue;
@@ -237,12 +236,12 @@
return new SequencedSkyframeProgressReceiver();
}
- /** A {@link SkyframeProgressReceiver} tracks dirty {@link FileValue.Key}s. */
+ /** A {@link SkyframeProgressReceiver} tracks dirty {@link FileKey}s. */
protected class SequencedSkyframeProgressReceiver extends SkyframeProgressReceiver {
@Override
public void dirtied(SkyKey skyKey, DirtyType dirtyType) {
super.dirtied(skyKey, dirtyType);
- if (skyKey instanceof FileValue.Key) {
+ if (skyKey instanceof FileKey) {
incrementalBuildMonitor.reportInvalidatedFileValue();
}
}
@@ -335,7 +334,7 @@
private static final ImmutableSet<SkyFunctionName> PACKAGE_LOCATOR_DEPENDENT_VALUES =
ImmutableSet.of(
FileStateKey.FILE_STATE,
- FileValue.FILE,
+ SkyFunctions.FILE,
SkyFunctions.DIRECTORY_LISTING_STATE,
SkyFunctions.PREPARE_DEPS_OF_PATTERN,
SkyFunctions.TARGET_PATTERN,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java
index 43ff6b0..beb0883 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyFunctions.java
@@ -45,6 +45,9 @@
public static final SkyFunctionName STARLARK_BUILTINS =
SkyFunctionName.createHermetic("STARLARK_BUILTINS");
public static final SkyFunctionName BZL_LOAD = SkyFunctionName.createHermetic("BZL_LOAD");
+ // Depends non-hermetically on package path, but that is under the control of a flag, so use
+ // semi-hermetic.
+ public static final SkyFunctionName FILE = SkyFunctionName.createSemiHermetic("FILE");
public static final SkyFunctionName GLOB = SkyFunctionName.createHermetic("GLOB");
public static final SkyFunctionName GLOBS = SkyFunctionName.createHermetic("GLOBS");
public static final SkyFunctionName PACKAGE = SkyFunctionName.createHermetic("PACKAGE");
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 685204f..93f5160 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
@@ -77,7 +77,6 @@
import com.google.devtools.build.lib.actions.EnvironmentalExecException;
import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.FileStateValue;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.actions.FilesetOutputTree;
import com.google.devtools.build.lib.actions.InputMetadataProvider;
import com.google.devtools.build.lib.actions.MapBasedActionGraph;
@@ -649,7 +648,7 @@
map.put(
FileSymlinkInfiniteExpansionUniquenessFunction.NAME,
new FileSymlinkInfiniteExpansionUniquenessFunction());
- map.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ map.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
map.put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction());
map.put(SkyFunctions.DIRECTORY_TREE_DIGEST, new DirectoryTreeDigestFunction());
map.put(
@@ -3076,7 +3075,7 @@
@Nullable GroupedDeps directDeps) {
if (heuristicallyDropNodes) {
Object argument = skyKey.argument();
- if (skyKey.functionName().equals(FileValue.FILE)) {
+ if (skyKey.functionName().equals(SkyFunctions.FILE)) {
checkArgument(
argument instanceof RootedPath,
"FILE SkyKey (%s) does not have a RootedPath typed argument (%s)",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
index 9d6bc9b..d1664ac 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -25,7 +25,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.eventbus.EventBus;
import com.google.common.hash.HashFunction;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -552,7 +551,7 @@
.put(
FileSymlinkInfiniteExpansionUniquenessFunction.NAME,
new FileSymlinkInfiniteExpansionUniquenessFunction())
- .put(FileValue.FILE, new FileFunction(pkgLocatorRef, directories))
+ .put(SkyFunctions.FILE, new FileFunction(pkgLocatorRef, directories))
.put(
SkyFunctions.PACKAGE_LOOKUP,
new PackageLookupFunction(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/BUILD
index dc5af33..5d2ff7a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/BUILD
@@ -66,7 +66,7 @@
":file_dependency_key_support",
"//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/analysis:analysis_cluster",
- "//src/main/java/com/google/devtools/build/lib/skyframe:directory_listing_value",
+ "//src/main/java/com/google/devtools/build/lib/skyframe:filesystem_keys",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/FileDependencySerializer.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/FileDependencySerializer.java
index cf99008..bf0eb3a 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/FileDependencySerializer.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/analysis/FileDependencySerializer.java
@@ -30,7 +30,8 @@
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.BundledFileSystem;
-import com.google.devtools.build.lib.skyframe.DirectoryListingValue;
+import com.google.devtools.build.lib.skyframe.DirectoryListingKey;
+import com.google.devtools.build.lib.skyframe.FileKey;
import com.google.devtools.build.lib.skyframe.serialization.FingerprintValueService;
import com.google.devtools.build.lib.skyframe.serialization.KeyBytesProvider;
import com.google.devtools.build.lib.skyframe.serialization.StringKey;
@@ -50,16 +51,16 @@
import java.util.function.Consumer;
import javax.annotation.Nullable;
-/** Records {@link FileValue.Key} and {@link DirectoryListingValue.Key} invalidation information. */
+/** Records {@link FileKey} and {@link DirectoryListingKey} invalidation information. */
final class FileDependencySerializer {
private final VersionNumberExtractor versionExtractor;
private final InMemoryGraph graph;
private final FingerprintValueService fingerprintValueService;
- private final ConcurrentHashMap<FileValue.Key, FileInvalidationDataReference> fileReferences =
+ private final ConcurrentHashMap<FileKey, FileInvalidationDataReference> fileReferences =
new ConcurrentHashMap<>();
- private final ConcurrentHashMap<DirectoryListingValue.Key, DirectoryInvalidationDataReference>
+ private final ConcurrentHashMap<DirectoryListingKey, DirectoryInvalidationDataReference>
directoryReferences = new ConcurrentHashMap<>();
interface VersionNumberExtractor {
@@ -86,7 +87,7 @@
* persisted.
*/
@Nullable // null if `key` isn't relevant to invalidation
- FileInvalidationDataReference registerDependency(FileValue.Key key) {
+ FileInvalidationDataReference registerDependency(FileKey key) {
RootedPath rootedPath = key.argument();
if (rootedPath.getRoot().getFileSystem() instanceof BundledFileSystem) {
return null; // This file doesn't change.
@@ -170,7 +171,7 @@
}
@Nullable // null if `key` isn't relevant to invalidation
- DirectoryInvalidationDataReference registerDependency(DirectoryListingValue.Key key) {
+ DirectoryInvalidationDataReference registerDependency(DirectoryListingKey key) {
RootedPath rootedPath = key.argument();
if (rootedPath.getRoot().getFileSystem() instanceof BundledFileSystem) {
return null; // This directory doesn't change.
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/BUILD b/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/BUILD
index 12aa521..7094b26 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/BUILD
@@ -17,8 +17,8 @@
deps = [
":options",
"//src/main/java/com/google/devtools/build/lib:runtime",
- "//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/events",
+ "//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
"//src/main/java/com/google/devtools/build/lib/starlarkdebug/server",
"//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
"//src/main/java/com/google/devtools/build/lib/vfs",
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/StarlarkDebuggerModule.java b/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/StarlarkDebuggerModule.java
index 5caab57..76f4de2 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/StarlarkDebuggerModule.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkdebug/module/StarlarkDebuggerModule.java
@@ -16,17 +16,18 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.runtime.BlazeModule;
import com.google.devtools.build.lib.runtime.Command;
import com.google.devtools.build.lib.runtime.CommandEnvironment;
+import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.starlarkdebug.server.StarlarkDebugServer;
import com.google.devtools.build.lib.starlarkdebug.server.StarlarkDebugServer.DebugCallback;
import com.google.devtools.build.lib.util.DetailedExitCode;
import com.google.devtools.build.lib.vfs.RootedPath;
import com.google.devtools.common.options.OptionsBase;
import java.io.IOException;
+import java.util.Objects;
import java.util.concurrent.CountDownLatch;
import net.starlark.java.eval.Debug;
@@ -100,7 +101,7 @@
.getEvaluator()
.delete(
skyKey ->
- FileValue.FILE.equals(skyKey.functionName())
+ Objects.equals(skyKey.functionName(), SkyFunctions.FILE)
&& breakPointPaths.contains(
((RootedPath) skyKey.argument()).asPath().toString()));
handle(Event.debug("analysis reset complete"));
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java
index 218b298..0997f03 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelDepGraphFunctionTest.java
@@ -27,7 +27,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -112,7 +111,7 @@
evaluator =
new InMemoryMemoizingEvaluator(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
- .put(FileValue.FILE, new FileFunction(packageLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(packageLocator, directories))
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java
index 1724097..fdf508a 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelModuleResolutionFunctionTest.java
@@ -22,7 +22,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.BlazeVersionInfo;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
@@ -124,7 +123,7 @@
evaluator =
new InMemoryMemoizingEvaluator(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
- .put(FileValue.FILE, new FileFunction(packageLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(packageLocator, directories))
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java
index 01b8e60..efea56a 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BzlmodRepoRuleFunctionTest.java
@@ -23,7 +23,6 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -116,7 +115,7 @@
evaluator =
new InMemoryMemoizingEvaluator(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
- .put(FileValue.FILE, new FileFunction(packageLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(packageLocator, directories))
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/DiscoveryTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/DiscoveryTest.java
index 15a5fb4..3f53d18 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/DiscoveryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/DiscoveryTest.java
@@ -25,7 +25,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -176,7 +175,7 @@
evaluator =
new InMemoryMemoizingEvaluator(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
- .put(FileValue.FILE, new FileFunction(packageLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(packageLocator, directories))
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java
index 1a2fb93..c70d276 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionResolutionTest.java
@@ -24,7 +24,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.hash.HashFunction;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -166,7 +165,7 @@
evaluator =
new InMemoryMemoizingEvaluator(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
- .put(FileValue.FILE, new FileFunction(packageLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(packageLocator, directories))
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java
index 575a8fe..e409be8 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileFunctionTest.java
@@ -26,7 +26,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.FileStateValue;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -141,7 +140,7 @@
evaluator =
new InMemoryMemoizingEvaluator(
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
- .put(FileValue.FILE, new FileFunction(packageLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(packageLocator, directories))
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/buildtool/QueryIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/buildtool/QueryIntegrationTest.java
index ea7def2..ab16f34 100644
--- a/src/test/java/com/google/devtools/build/lib/buildtool/QueryIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/buildtool/QueryIntegrationTest.java
@@ -22,7 +22,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.buildtool.util.BuildIntegrationTestCase;
import com.google.devtools.build.lib.events.EventKind;
@@ -68,6 +67,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.Nullable;
@@ -1011,7 +1011,7 @@
NotifyingHelper.makeNotifyingTransformer(
(key, type, order, context) -> {
if (order == NotifyingHelper.Order.BEFORE
- && FileValue.FILE.equals(key.functionName())) {
+ && Objects.equals(key.functionName(), SkyFunctions.FILE)) {
if (!((RootedPath) key.argument())
.getRootRelativePath()
.endsWith(depPackageBuild)) {
diff --git a/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java b/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
index ba7d3dd..af75345 100644
--- a/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
+++ b/src/test/java/com/google/devtools/build/lib/repository/ExternalPackageHelperTest.java
@@ -145,7 +145,7 @@
Suppliers.ofInstance(new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper));
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
RuleClassProvider ruleClassProvider = analysisMock.createRuleClassProvider();
skyFunctions.put(
WorkspaceFileValue.WORKSPACE_FILE,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java
index 785330cc..cf2a064 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorTest.java
@@ -24,7 +24,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.hash.HashFunction;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -190,7 +189,7 @@
new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper))
- .put(FileValue.FILE, new FileFunction(pkgLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories))
.put(SkyFunctions.REPOSITORY_DIRECTORY, delegatorFunction)
.put(SkyFunctions.PACKAGE, PackageFunction.newBuilder().build())
.put(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
index b64be27..3e817b9 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTestCase.java
@@ -20,7 +20,6 @@
import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionLookupKey;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.actions.util.InjectedActionLookupKey;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
@@ -107,7 +106,7 @@
new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper))
- .put(FileValue.FILE, new FileFunction(pkgLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories))
.put(
Artifact.ARTIFACT,
new ArtifactFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
index 50d2a60..bd967b0 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java
@@ -21,7 +21,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.testing.EqualsTester;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -121,7 +120,7 @@
Suppliers.ofInstance(new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper));
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
skyFunctions.put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction());
skyFunctions.put(
SkyFunctions.DIRECTORY_LISTING_STATE,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunctionTest.java
index 7dd4eed..d9b364a 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/DirectoryTreeDigestFunctionTest.java
@@ -19,7 +19,6 @@
import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -79,7 +78,7 @@
skyFunctions =
ImmutableMap.<SkyFunctionName, SkyFunction>builder()
- .put(FileValue.FILE, new FileFunction(packageLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(packageLocator, directories))
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
index 68207a5..bb54612 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java
@@ -182,7 +182,7 @@
.put(
FileSymlinkInfiniteExpansionUniquenessFunction.NAME,
new FileSymlinkInfiniteExpansionUniquenessFunction())
- .put(FileValue.FILE, new FileFunction(pkgLocatorRef, directories))
+ .put(SkyFunctions.FILE, new FileFunction(pkgLocatorRef, directories))
.put(SkyFunctions.PACKAGE, PackageFunction.newBuilder().build())
.put(
SkyFunctions.PACKAGE_LOOKUP,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java
index ab6d654..e2f7f51 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java
@@ -26,7 +26,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactRoot;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.actions.FilesetOutputSymlink;
import com.google.devtools.build.lib.actions.FilesetTraversalParams;
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
@@ -108,7 +107,7 @@
Suppliers.ofInstance(new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper));
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
skyFunctions.put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction());
skyFunctions.put(
SkyFunctions.DIRECTORY_LISTING_STATE,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
index 3591cf2..0c5f387 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java
@@ -307,7 +307,7 @@
Suppliers.ofInstance(new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper));
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
skyFunctions.put(
FileSymlinkCycleUniquenessFunction.NAME, new FileSymlinkCycleUniquenessFunction());
skyFunctions.put(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobTestBase.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobTestBase.java
index 44f9aab..6ff1459 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobTestBase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobTestBase.java
@@ -170,7 +170,7 @@
skyFunctions.put(
FileSymlinkInfiniteExpansionUniquenessFunction.NAME,
new FileSymlinkCycleUniquenessFunction());
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
skyFunctions.put(
FileSymlinkCycleUniquenessFunction.NAME, new FileSymlinkCycleUniquenessFunction());
AnalysisMock analysisMock = AnalysisMock.get();
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java
index 9662f2a..85f09fd 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/LocalRepositoryLookupFunctionTest.java
@@ -19,7 +19,6 @@
import com.google.common.base.Suppliers;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -103,7 +102,7 @@
Suppliers.ofInstance(new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper));
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
skyFunctions.put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction());
skyFunctions.put(
SkyFunctions.DIRECTORY_LISTING_STATE,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
index 50bfff0..84400bb 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
@@ -24,7 +24,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.actions.FileStateValue;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
@@ -128,7 +127,7 @@
Suppliers.ofInstance(new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper));
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
skyFunctions.put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction());
skyFunctions.put(
SkyFunctions.DIRECTORY_LISTING_STATE,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
index a08ad34..4e778ee 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
@@ -41,7 +41,6 @@
import com.google.devtools.build.lib.actions.FileStateValue;
import com.google.devtools.build.lib.actions.FileStateValue.RegularFileStateValueWithContentsProxy;
import com.google.devtools.build.lib.actions.FileStateValue.RegularFileStateValueWithDigest;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.actions.FilesetTraversalParams.DirectTraversalRoot;
import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode;
import com.google.devtools.build.lib.actions.HasDigest;
@@ -167,7 +166,7 @@
Suppliers.ofInstance(new TimestampGranularityMonitor(BlazeClock.instance())),
SyscallCache.NO_CACHE,
externalFilesHelper));
- skyFunctions.put(FileValue.FILE, new FileFunction(pkgLocator, directories));
+ skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories));
skyFunctions.put(SkyFunctions.DIRECTORY_LISTING, new DirectoryListingFunction());
skyFunctions.put(
SkyFunctions.DIRECTORY_LISTING_STATE,
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
index 3270f73..7b4915b 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
@@ -47,7 +47,6 @@
import com.google.devtools.build.lib.actions.BuildFailedException;
import com.google.devtools.build.lib.actions.DiscoveredModulesPruner;
import com.google.devtools.build.lib.actions.Executor;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.actions.InputMetadataProvider;
import com.google.devtools.build.lib.actions.RemoteArtifactChecker;
import com.google.devtools.build.lib.actions.TestExecException;
@@ -245,7 +244,7 @@
.put(
FileStateKey.FILE_STATE,
new FileStateFunction(() -> tsgm, SyscallCache.NO_CACHE, externalFilesHelper))
- .put(FileValue.FILE, new FileFunction(pkgLocator, directories))
+ .put(SkyFunctions.FILE, new FileFunction(pkgLocator, directories))
.put(
Artifact.ARTIFACT,
new ArtifactFunction(
diff --git a/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/BUILD b/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/BUILD
index 16ce88f..9395edf 100644
--- a/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/BUILD
@@ -80,8 +80,8 @@
deps = [
":utils",
"//src/main/java/com/google/devtools/build/lib:runtime",
- "//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
"//src/main/java/com/google/devtools/build/lib/events",
+ "//src/main/java/com/google/devtools/build/lib/skyframe:sky_functions",
"//src/main/java/com/google/devtools/build/lib/starlarkdebug/module",
"//src/main/java/com/google/devtools/build/lib/starlarkdebug/proto:starlark_debugging_java_proto",
"//src/main/java/com/google/devtools/build/lib/starlarkdebug/server",
diff --git a/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/StarlarkDebugIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/StarlarkDebugIntegrationTest.java
index 95eb783..7da64f7 100644
--- a/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/StarlarkDebugIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/starlarkdebug/server/StarlarkDebugIntegrationTest.java
@@ -21,13 +21,13 @@
import static org.junit.Assert.assertThrows;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.actions.FileValue;
import com.google.devtools.build.lib.buildtool.BuildResult;
import com.google.devtools.build.lib.buildtool.util.BuildIntegrationTestCase;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventCollector;
import com.google.devtools.build.lib.events.EventKind;
import com.google.devtools.build.lib.runtime.BlazeRuntime;
+import com.google.devtools.build.lib.skyframe.SkyFunctions;
import com.google.devtools.build.lib.starlarkdebug.module.StarlarkDebuggerModule;
import com.google.devtools.build.lib.starlarkdebugging.StarlarkDebuggingProtos.Breakpoint;
import com.google.devtools.build.lib.starlarkdebugging.StarlarkDebuggingProtos.DebugRequest;
@@ -137,7 +137,7 @@
Set<String> deletedFiles = ConcurrentHashMap.newKeySet();
injectListenerAtStartOfNextBuild(
(key, type, order, context) -> {
- if (Objects.equals(key.functionName(), FileValue.FILE)
+ if (Objects.equals(key.functionName(), SkyFunctions.FILE)
&& Objects.equals(context, Reason.INVALIDATION)) {
deletedFiles.add(((RootedPath) key.argument()).getRootRelativePath().getPathString());
}