Add ActionKeyContext to Action#getKey.
This key context can be used by actions to share partial key computations, for instance when computing MD5s for nested sets.
RELNOTES: None
PiperOrigin-RevId: 177359607
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
index d70683c..dab170e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
@@ -19,7 +19,7 @@
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.ActionAnalysisMetadata;
+import com.google.devtools.build.lib.actions.ActionKeyContext;
import com.google.devtools.build.lib.actions.ActionLookupValue;
import com.google.devtools.build.lib.analysis.AliasProvider;
import com.google.devtools.build.lib.analysis.AspectResolver;
@@ -217,7 +217,12 @@
Target target = associatedTarget.getTarget();
if (configuredTargetValue.getConfiguredTarget().getProvider(AliasProvider.class) != null) {
- return createAliasAspect(env, target, aspect, key,
+ return createAliasAspect(
+ env,
+ view.getActionKeyContext(),
+ target,
+ aspect,
+ key,
configuredTargetValue.getConfiguredTarget());
}
@@ -322,6 +327,7 @@
return createAspect(
env,
+ view.getActionKeyContext(),
key,
aspectPath,
aspect,
@@ -407,6 +413,7 @@
private SkyValue createAliasAspect(
Environment env,
+ ActionKeyContext actionKeyContext,
Target originalTarget,
Aspect aspect,
AspectKey originalKey,
@@ -438,7 +445,8 @@
originalTarget.getLabel(),
originalTarget.getLocation(),
ConfiguredAspect.forAlias(real.getConfiguredAspect()),
- ImmutableList.<ActionAnalysisMetadata>of(),
+ actionKeyContext,
+ ImmutableList.of(),
transitivePackages,
removeActionsAfterEvaluation.get());
}
@@ -446,6 +454,7 @@
@Nullable
private AspectValue createAspect(
Environment env,
+ ActionKeyContext actionKeyContext,
AspectKey key,
ImmutableList<Aspect> aspectPath,
Aspect aspect,
@@ -513,6 +522,7 @@
associatedTarget.getLabel(),
associatedTarget.getTarget().getLocation(),
configuredAspect,
+ actionKeyContext,
ImmutableList.copyOf(analysisEnvironment.getRegisteredActions()),
transitivePackages.build(),
removeActionsAfterEvaluation.get());