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);