Remove TransitiveTargetValue#transitiveRootCauses: callers only need to know if there was an error, not the full list, after unknown commit.

PiperOrigin-RevId: 342704215
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
index 75dc276..a986850 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
@@ -76,7 +76,7 @@
    */
   abstract SkyKey getKey(Label label);
 
-  abstract ProcessedTargetsT processTarget(Label label, TargetAndErrorIfAny targetAndErrorIfAny);
+  abstract ProcessedTargetsT processTarget(TargetAndErrorIfAny targetAndErrorIfAny);
 
   abstract void processDeps(
       ProcessedTargetsT processedTargets,
@@ -133,7 +133,7 @@
       return null;
     }
 
-    ProcessedTargetsT processedTargets = processTarget(label, targetAndErrorIfAny);
+    ProcessedTargetsT processedTargets = processTarget(targetAndErrorIfAny);
     processDeps(processedTargets, env.getListener(), targetAndErrorIfAny, depMap.entrySet());
     processDeps(processedTargets, env.getListener(), targetAndErrorIfAny, labelAspectEntries);
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
index efa95de..8b393e5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
@@ -67,10 +67,10 @@
   }
 
   @Override
-  TransitiveTargetValueBuilder processTarget(Label label, TargetAndErrorIfAny targetAndErrorIfAny) {
+  TransitiveTargetValueBuilder processTarget(TargetAndErrorIfAny targetAndErrorIfAny) {
     Target target = targetAndErrorIfAny.getTarget();
     boolean packageLoadedSuccessfully = targetAndErrorIfAny.isPackageLoadedSuccessfully();
-    return new TransitiveTargetValueBuilder(label, target, packageLoadedSuccessfully);
+    return new TransitiveTargetValueBuilder(target, packageLoadedSuccessfully);
   }
 
   @Override
@@ -82,7 +82,6 @@
           depEntries) {
     boolean successfulTransitiveLoading = builder.isSuccessfulTransitiveLoading();
     Target target = targetAndErrorIfAny.getTarget();
-    NestedSetBuilder<Label> transitiveRootCauses = builder.getTransitiveRootCauses();
 
     for (Map.Entry<SkyKey, ValueOrException2<NoSuchPackageException, NoSuchTargetException>> entry :
         depEntries) {
@@ -95,15 +94,12 @@
         }
       } catch (NoSuchPackageException | NoSuchTargetException e) {
         successfulTransitiveLoading = false;
-        transitiveRootCauses.add(depLabel);
         maybeReportErrorAboutMissingEdge(target, depLabel, e, eventHandler);
         continue;
       }
       builder.getTransitiveTargets().addTransitive(transitiveTargetValue.getTransitiveTargets());
-      NestedSet<Label> rootCauses = transitiveTargetValue.getTransitiveRootCauses();
-      if (rootCauses != null) {
+      if (transitiveTargetValue.encounteredLoadingError()) {
         successfulTransitiveLoading = false;
-        transitiveRootCauses.addTransitive(rootCauses);
         if (transitiveTargetValue.getErrorLoadingTarget() != null) {
           maybeReportErrorAboutMissingEdge(target, depLabel,
               transitiveTargetValue.getErrorLoadingTarget(), eventHandler);
@@ -281,20 +277,14 @@
     private final NestedSetBuilder<Label> transitiveTargets;
     private final NestedSetBuilder<Class<? extends Fragment>> transitiveConfigFragments;
     private final Set<Class<? extends Fragment>> configFragmentsFromDeps;
-    private final NestedSetBuilder<Label> transitiveRootCauses;
 
-    public TransitiveTargetValueBuilder(Label label, Target target,
-        boolean packageLoadedSuccessfully) {
+    public TransitiveTargetValueBuilder(Target target, boolean packageLoadedSuccessfully) {
       this.transitiveTargets = NestedSetBuilder.stableOrder();
       this.transitiveConfigFragments = NestedSetBuilder.stableOrder();
       // No need to store directly required fragments that are also required by deps.
       this.configFragmentsFromDeps = new LinkedHashSet<>();
-      this.transitiveRootCauses = NestedSetBuilder.stableOrder();
 
       this.successfulTransitiveLoading = packageLoadedSuccessfully;
-      if (!packageLoadedSuccessfully) {
-        transitiveRootCauses.add(label);
-      }
       transitiveTargets.add(target.getLabel());
     }
 
@@ -310,10 +300,6 @@
       return configFragmentsFromDeps;
     }
 
-    public NestedSetBuilder<Label> getTransitiveRootCauses() {
-      return transitiveRootCauses;
-    }
-
     public boolean isSuccessfulTransitiveLoading() {
       return successfulTransitiveLoading;
     }
@@ -329,7 +315,6 @@
           ? TransitiveTargetValue.successfulTransitiveLoading(loadedTargets, configFragments)
           : TransitiveTargetValue.unsuccessfulTransitiveLoading(
               loadedTargets,
-              transitiveRootCauses.build(),
               errorLoadingTarget,
               configFragments);
     }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java
index 1be4192..32ea0c6 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetValue.java
@@ -30,34 +30,37 @@
 @ThreadSafe
 public class TransitiveTargetValue implements SkyValue {
   private final NestedSet<Label> transitiveTargets;
-  @Nullable private NestedSet<Label> transitiveRootCauses;
+  private final boolean encounteredLoadingError;
   @Nullable private NoSuchTargetException errorLoadingTarget;
   private NestedSet<Class<? extends Fragment>> transitiveConfigFragments;
 
   private TransitiveTargetValue(
       NestedSet<Label> transitiveTargets,
-      @Nullable NestedSet<Label> transitiveRootCauses,
+      boolean encounteredLoadingError,
       @Nullable NoSuchTargetException errorLoadingTarget,
       NestedSet<Class<? extends Fragment>> transitiveConfigFragments) {
     this.transitiveTargets = transitiveTargets;
-    this.transitiveRootCauses = transitiveRootCauses;
+    this.encounteredLoadingError = encounteredLoadingError;
     this.errorLoadingTarget = errorLoadingTarget;
     this.transitiveConfigFragments = transitiveConfigFragments;
   }
 
   static TransitiveTargetValue unsuccessfulTransitiveLoading(
       NestedSet<Label> transitiveTargets,
-      NestedSet<Label> rootCauses,
       @Nullable NoSuchTargetException errorLoadingTarget,
       NestedSet<Class<? extends Fragment>> transitiveConfigFragments) {
     return new TransitiveTargetValue(
-        transitiveTargets, rootCauses, errorLoadingTarget, transitiveConfigFragments);
+        transitiveTargets,
+        /*encounteredLoadingError=*/ true,
+        errorLoadingTarget,
+        transitiveConfigFragments);
   }
 
   static TransitiveTargetValue successfulTransitiveLoading(
       NestedSet<Label> transitiveTargets,
       NestedSet<Class<? extends Fragment>> transitiveConfigFragments) {
-    return new TransitiveTargetValue(transitiveTargets, null, null, transitiveConfigFragments);
+    return new TransitiveTargetValue(
+        transitiveTargets, /*encounteredLoadingError=*/ false, null, transitiveConfigFragments);
   }
 
   /** Returns the error, if any, from loading the target. */
@@ -71,10 +74,8 @@
     return transitiveTargets;
   }
 
-  /** Returns the root causes, if any, of why targets weren't loaded. */
-  @Nullable
-  public NestedSet<Label> getTransitiveRootCauses() {
-    return transitiveRootCauses;
+  public boolean encounteredLoadingError() {
+    return encounteredLoadingError;
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunction.java
index 74b8032..585d95c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTraversalFunction.java
@@ -53,8 +53,7 @@
   }
 
   @Override
-  DeterministicErrorMessageAccumulator processTarget(
-      Label label, TargetAndErrorIfAny targetAndErrorIfAny) {
+  DeterministicErrorMessageAccumulator processTarget(TargetAndErrorIfAny targetAndErrorIfAny) {
     NoSuchTargetException errorIfAny = targetAndErrorIfAny.getErrorLoadingTarget();
     String errorMessageIfAny = errorIfAny == null ? null : errorIfAny.getMessage();
     return DeterministicErrorMessageAccumulator.create(errorMessageIfAny);