Remove the unnecessary `BuildConfigurationValue` wrapper around `BuildConfiguration`.
Instead, have `BuildConfiguration` implement `SkyValue` directly, and rename it to `BuildConfigurationValue`. Its `equals` and `hashCode` methods are removed - they were incomplete (notably, they did not consider the repository name). This was covered up by the fact that the wrapping `SkyValue` did not implement equality, preventing false change pruning.
`BuildConfigurationValue.Key` is promoted to a top-level class `BuildConfigurationKey`.
PiperOrigin-RevId: 406166220
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
index 0abd80b..2ab108f 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/CircularDependencyTest.java
@@ -24,7 +24,7 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
@@ -229,9 +229,9 @@
/** A late bound dependency which depends on the 'dep' label if the 'define' is in --defines. */
// TODO(b/65746853): provide a way to do this without passing the entire configuration
- private static final LabelLateBoundDefault<BuildConfiguration> LATE_BOUND_DEP =
+ private static final LabelLateBoundDefault<BuildConfigurationValue> LATE_BOUND_DEP =
LabelLateBoundDefault.fromTargetConfiguration(
- BuildConfiguration.class,
+ BuildConfigurationValue.class,
null,
(rule, attributes, config) ->
config.getCommandLineBuildVariables().containsKey(attributes.get("define", STRING))