Add codec for ConfiguredTargetKey and remove stray LegacySkyKey constructors that took ConfiguredTargetKey.
PiperOrigin-RevId: 183519981
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
index c2353b8..166119f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java
@@ -22,7 +22,12 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
+import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
+import com.google.devtools.build.lib.skyframe.serialization.SerializationException;
import com.google.devtools.build.skyframe.SkyFunctionName;
+import com.google.protobuf.CodedInputStream;
+import com.google.protobuf.CodedOutputStream;
+import java.io.IOException;
import java.util.Objects;
import javax.annotation.Nullable;
@@ -31,6 +36,8 @@
* action of an artifact.
*/
public class ConfiguredTargetKey extends ActionLookupKey {
+ public static final ObjectCodec<ConfiguredTargetKey> CODEC = Codec.INSTANCE;
+
private final Label label;
@Nullable private final BuildConfigurationValue.Key configurationKey;
@@ -192,4 +199,37 @@
this.isHost = isHost;
}
}
+
+ private static final class Codec implements ObjectCodec<ConfiguredTargetKey> {
+ private static final Codec INSTANCE = new Codec();
+
+ private Codec() {}
+
+ @Override
+ public Class<ConfiguredTargetKey> getEncodedClass() {
+ return ConfiguredTargetKey.class;
+ }
+
+ @Override
+ public void serialize(ConfiguredTargetKey obj, CodedOutputStream codedOut)
+ throws SerializationException, IOException {
+ Label.CODEC.serialize(obj.label, codedOut);
+ if (obj.configurationKey == null) {
+ codedOut.writeBoolNoTag(false);
+ } else {
+ codedOut.writeBoolNoTag(true);
+ BuildConfigurationValue.Key.CODEC.serialize(obj.configurationKey, codedOut);
+ }
+ codedOut.writeBoolNoTag(obj.isHostConfiguration());
+ }
+
+ @Override
+ public ConfiguredTargetKey deserialize(CodedInputStream codedIn)
+ throws SerializationException, IOException {
+ return of(
+ Label.CODEC.deserialize(codedIn),
+ codedIn.readBool() ? BuildConfigurationValue.Key.CODEC.deserialize(codedIn) : null,
+ codedIn.readBool());
+ }
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
index 1f34c53..b587ab9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
@@ -23,7 +23,6 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredValueCreationException;
-import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionException;
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
@@ -92,11 +91,7 @@
ImmutableList<SkyKey> keys =
labels
.stream()
- .map(
- label ->
- LegacySkyKey.create(
- SkyFunctions.CONFIGURED_TARGET,
- ConfiguredTargetKey.of(label, configuration)))
+ .map(label -> ConfiguredTargetKey.of(label, configuration))
.collect(ImmutableList.toImmutableList());
Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> values =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
index ad531b3..7a2c948 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredToolchainsFunction.java
@@ -23,7 +23,6 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetFunction.ConfiguredValueCreationException;
-import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunctionException;
import com.google.devtools.build.skyframe.SkyFunctionException.Transience;
@@ -102,11 +101,7 @@
ImmutableList<SkyKey> keys =
labels
.stream()
- .map(
- label ->
- LegacySkyKey.create(
- SkyFunctions.CONFIGURED_TARGET,
- ConfiguredTargetKey.of(label, configuration)))
+ .map(label -> ConfiguredTargetKey.of(label, configuration))
.collect(ImmutableList.toImmutableList());
Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> values =
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
index 11e44fc..d687136 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
@@ -30,7 +30,6 @@
import com.google.devtools.build.lib.skyframe.ToolchainResolutionFunction.NoToolchainFoundException;
import com.google.devtools.build.lib.skyframe.ToolchainResolutionValue.ToolchainResolutionKey;
import com.google.devtools.build.lib.syntax.EvalException;
-import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyFunction.Environment;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.ValueOrException;
@@ -141,14 +140,8 @@
Label executionPlatformLabel = platformConfiguration.getExecutionPlatform();
Label targetPlatformLabel = platformConfiguration.getTargetPlatforms().get(0);
- SkyKey executionPlatformKey =
- LegacySkyKey.create(
- SkyFunctions.CONFIGURED_TARGET,
- ConfiguredTargetKey.of(executionPlatformLabel, configuration));
- SkyKey targetPlatformKey =
- LegacySkyKey.create(
- SkyFunctions.CONFIGURED_TARGET,
- ConfiguredTargetKey.of(targetPlatformLabel, configuration));
+ SkyKey executionPlatformKey = ConfiguredTargetKey.of(executionPlatformLabel, configuration);
+ SkyKey targetPlatformKey = ConfiguredTargetKey.of(targetPlatformLabel, configuration);
Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> values =
env.getValuesOrThrow(