Check in the majority of the prototype's code.
This is the MVP of Skyframe with merged analysis and execution. It's meant to only handle the most straightforward "happy path" of a build and is currently ignoring all failures and extra features.
RELNOTES: None
PiperOrigin-RevId: 399632160
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java
index 6cdb535..0f73f9c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java
@@ -17,6 +17,7 @@
import com.google.devtools.build.lib.analysis.TopLevelArtifactContext;
import com.google.devtools.build.skyframe.SkyFunctionName;
import com.google.devtools.build.skyframe.SkyKey;
+import java.util.Objects;
/**
* Wraps an {@link ActionLookupKey}. The evaluation of this SkyKey is the entry point of analyzing
@@ -44,4 +45,19 @@
public SkyFunctionName functionName() {
return SkyFunctions.BUILD_DRIVER;
}
+
+ @Override
+ public boolean equals(Object other) {
+ if (other instanceof BuildDriverKey) {
+ BuildDriverKey otherBuildDriverKey = (BuildDriverKey) other;
+ return actionLookupKey.equals(otherBuildDriverKey.actionLookupKey)
+ && topLevelArtifactContext.equals(otherBuildDriverKey.topLevelArtifactContext);
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(actionLookupKey, topLevelArtifactContext);
+ }
}