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/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index ea261a9..749a8d0 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
@@ -36,8 +36,8 @@
 import com.google.devtools.build.lib.actions.ArtifactFactory;
 import com.google.devtools.build.lib.actions.PackageRoots;
 import com.google.devtools.build.lib.actions.TotalAndConfiguredTargetOnlyMetric;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
 import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
+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.ConfigurationResolver.TopLevelTargetsAndConfigsResult;
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
@@ -75,7 +75,7 @@
 import com.google.devtools.build.lib.skyframe.AspectKeyCreator;
 import com.google.devtools.build.lib.skyframe.AspectKeyCreator.AspectKey;
 import com.google.devtools.build.lib.skyframe.AspectKeyCreator.TopLevelAspectsKey;
-import com.google.devtools.build.lib.skyframe.BuildConfigurationValue;
+import com.google.devtools.build.lib.skyframe.BuildConfigurationKey;
 import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
 import com.google.devtools.build.lib.skyframe.CoverageReportValue;
 import com.google.devtools.build.lib.skyframe.PrepareAnalysisPhaseValue;
@@ -117,7 +117,7 @@
  * build.
  *
  * <p>Targets are implemented by the {@link Target} hierarchy in the {@code lib.packages} code.
- * Configurations are implemented by {@link BuildConfiguration}. The pair of these together is
+ * Configurations are implemented by {@link BuildConfigurationValue}. The pair of these together is
  * represented by an instance of class {@link ConfiguredTarget}; this is the root of a hierarchy
  * with different implementations for each kind of target: source file, derived file, rules, etc.
  *
@@ -255,7 +255,7 @@
           new MakeEnvironmentEvent(
               configurations.getTargetConfigurations().get(0).getMakeEnvironment()));
     }
-    for (BuildConfiguration targetConfig : configurations.getTargetConfigurations()) {
+    for (BuildConfigurationValue targetConfig : configurations.getTargetConfigurations()) {
       eventBus.post(targetConfig.toBuildEvent());
     }
 
@@ -263,7 +263,7 @@
         topLevelTargetsWithConfigsResult.getTargetsAndConfigs();
 
     // Report the generated association of targets to configurations
-    Multimap<Label, BuildConfiguration> byLabel = ArrayListMultimap.create();
+    Multimap<Label, BuildConfigurationValue> byLabel = ArrayListMultimap.create();
     for (TargetAndConfiguration pair : topLevelTargetsWithConfigs) {
       byLabel.put(pair.getLabel(), pair.getConfiguration());
     }
@@ -332,12 +332,12 @@
       }
     }
 
-    Multimap<Pair<Label, String>, BuildConfiguration> aspectConfigurations =
+    Multimap<Pair<Label, String>, BuildConfigurationValue> aspectConfigurations =
         ArrayListMultimap.create();
     ImmutableList<AspectClass> aspectClasses = aspectClassesBuilder.build();
     ImmutableList.Builder<TopLevelAspectsKey> aspectsKeys = ImmutableList.builder();
     for (TargetAndConfiguration targetSpec : topLevelTargetsWithConfigs) {
-      BuildConfiguration configuration = targetSpec.getConfiguration();
+      BuildConfigurationValue configuration = targetSpec.getConfiguration();
       for (AspectClass aspectClass : aspectClasses) {
         aspectConfigurations.put(
             Pair.of(targetSpec.getLabel(), aspectClass.getName()), configuration);
@@ -360,13 +360,12 @@
     getArtifactFactory().noteAnalysisStarting();
     SkyframeAnalysisResult skyframeAnalysisResult;
     try {
-      Supplier<Map<BuildConfigurationValue.Key, BuildConfiguration>> configurationLookupSupplier =
+      Supplier<Map<BuildConfigurationKey, BuildConfigurationValue>> configurationLookupSupplier =
           () -> {
-            Map<BuildConfigurationValue.Key, BuildConfiguration> result = new HashMap<>();
+            Map<BuildConfigurationKey, BuildConfigurationValue> result = new HashMap<>();
             for (TargetAndConfiguration node : topLevelTargetsWithConfigs) {
               if (node.getConfiguration() != null) {
-                result.put(
-                    BuildConfigurationValue.key(node.getConfiguration()), node.getConfiguration());
+                result.put(node.getConfiguration().getKey(), node.getConfiguration());
               }
             }
             return result;