Add getConfiguredTarget method to Dependency. Part of work on toolchain transitions, #10523. Closes #11491. PiperOrigin-RevId: 313225355
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD index b5e6167..de3bbfe 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD +++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -704,6 +704,7 @@ ":config/transitions/configuration_transition", "//src/main/java/com/google/devtools/build/lib/cmdline", "//src/main/java/com/google/devtools/build/lib/packages", + "//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_key", "//third_party:auto_value", "//third_party:guava", "//third_party:jsr305",
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java b/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java index abfa5ed..b2d8801 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java
@@ -20,6 +20,7 @@ import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.AspectDescriptor; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; import javax.annotation.Nullable; /** @@ -116,4 +117,9 @@ * to the dependency. */ public abstract ImmutableList<String> getTransitionKeys(); + + /** Returns the ConfiguredTargetKey needed to fetch this dependency. */ + public ConfiguredTargetKey getConfiguredTargetKey() { + return ConfiguredTargetKey.of(getLabel(), getConfiguration()); + } }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java index 55f3bdd..cde4afd 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -797,8 +797,7 @@ // to do a potential second pass, in which we fetch all the Packages for AliasConfiguredTargets. Iterable<SkyKey> depKeys = Iterables.concat( - Iterables.transform( - deps, input -> ConfiguredTargetKey.of(input.getLabel(), input.getConfiguration())), + Iterables.transform(deps, Dependency::getConfiguredTargetKey), Iterables.transform( deps, input -> PackageValue.key(input.getLabel().getPackageIdentifier()))); Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> depValuesOrExceptions = @@ -810,7 +809,7 @@ Collection<Dependency> depsToProcess = deps; for (int i = 0; i < 2; i++) { for (Dependency dep : depsToProcess) { - SkyKey key = ConfiguredTargetKey.of(dep.getLabel(), dep.getConfiguration()); + SkyKey key = dep.getConfiguredTargetKey(); try { ConfiguredTargetValue depValue = (ConfiguredTargetValue) depValuesOrExceptions.get(key).get();