Remove TargetAndConfiguration.getConfiguredTargetKey.
This method is lossy: if the original CTK set the ToolchainContextKey, it is lost when this method is called.
Callers that are operating on top-level targets that cannot possibly have a ToolchainContextKey now have their own versions.
In general, TargetAndConfiguration is terrible and we should remove it.
PiperOrigin-RevId: 397056801
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 ddaad42..0f4858a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -1041,7 +1041,6 @@
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/packages",
- "//src/main/java/com/google/devtools/build/lib/skyframe:configured_target_key",
"//third_party:guava",
"//third_party:jsr305",
],
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index f835927..77ef4d4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -271,7 +271,7 @@
List<ConfiguredTargetKey> topLevelCtKeys =
topLevelTargetsWithConfigs.stream()
- .map(TargetAndConfiguration::getConfiguredTargetKey)
+ .map(BuildView::getConfiguredTargetKey)
.collect(Collectors.toList());
ImmutableList.Builder<AspectClass> aspectClassesBuilder = ImmutableList.builder();
@@ -439,6 +439,14 @@
return result;
}
+ private static ConfiguredTargetKey getConfiguredTargetKey(
+ TargetAndConfiguration targetAndConfiguration) {
+ return ConfiguredTargetKey.builder()
+ .setLabel(targetAndConfiguration.getLabel())
+ .setConfiguration(targetAndConfiguration.getConfiguration())
+ .build();
+ }
+
private AnalysisResult createResult(
ExtendedEventHandler eventHandler,
EventBus eventBus,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java
index 4e685e2..ac3d6fa 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetAndConfiguration.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.Target;
-import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import java.util.Objects;
import javax.annotation.Nullable;
@@ -79,11 +78,4 @@
public BuildConfiguration getConfiguration() {
return configuration;
}
-
- public ConfiguredTargetKey getConfiguredTargetKey() {
- return ConfiguredTargetKey.builder()
- .setLabel(getLabel())
- .setConfiguration(getConfiguration())
- .build();
- }
}
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 f867f7e..3a6fac2 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
@@ -369,6 +369,7 @@
view,
env,
ctgValue,
+ configuredTargetKey,
depValueMap,
configConditions,
toolchainContexts,
@@ -960,6 +961,7 @@
SkyframeBuildView view,
Environment env,
TargetAndConfiguration ctgValue,
+ ConfiguredTargetKey configuredTargetKey,
OrderedSetMultimap<DependencyKind, ConfiguredTargetAndData> depValueMap,
ConfigConditions configConditions,
@Nullable ToolchainCollection<ResolvedToolchainContext> toolchainContexts,
@@ -968,7 +970,6 @@
throws ConfiguredValueCreationException, InterruptedException {
Target target = ctgValue.getTarget();
BuildConfiguration configuration = ctgValue.getConfiguration();
- ConfiguredTargetKey configuredTargetKey = ctgValue.getConfiguredTargetKey();
// Should be successfully evaluated and cached from the loading phase.
StarlarkBuiltinsValue starlarkBuiltinsValue =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java
index 76066e1..b5afe28 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareAnalysisPhaseFunction.java
@@ -173,12 +173,20 @@
}
ImmutableList<ConfiguredTargetKey> topLevelCtKeys =
topLevelTargetsWithConfigs.stream()
- .map(TargetAndConfiguration::getConfiguredTargetKey)
+ .map(PrepareAnalysisPhaseFunction::getConfiguredTargetKey)
.collect(ImmutableList.toImmutableList());
return new PrepareAnalysisPhaseValue(
hostConfigurationKey, targetConfigurationKeys, topLevelCtKeys);
}
+ private static ConfiguredTargetKey getConfiguredTargetKey(
+ TargetAndConfiguration targetAndConfiguration) {
+ return ConfiguredTargetKey.builder()
+ .setLabel(targetAndConfiguration.getLabel())
+ .setConfiguration(targetAndConfiguration.getConfiguration())
+ .build();
+ }
+
/**
* Returns the {@link BuildOptions} to apply to the top-level build configurations. This can be
* plural because of {@code multiCpu}.