Have TransitiveTraversalValues store kind of targets which have errors when computing TransitiveTraversalValues.
RELNOTES: None
PiperOrigin-RevId: 156138657
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 4f11095..7673069 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
@@ -81,8 +81,13 @@
}
}
- protected Collection<Label> getAspectLabels(Rule fromRule, Attribute attr, Label toLabel,
- ValueOrException2<NoSuchPackageException, NoSuchTargetException> toVal, Environment env) {
+ @Override
+ protected Collection<Label> getAspectLabels(
+ Rule fromRule,
+ Attribute attr,
+ Label toLabel,
+ ValueOrException2<NoSuchPackageException, NoSuchTargetException> toVal,
+ Environment env) {
try {
if (toVal == null) {
return ImmutableList.of();
@@ -110,7 +115,8 @@
String firstErrorMessage = accumulator.getFirstErrorMessage();
return targetLoadedSuccessfully
? TransitiveTraversalValue.forTarget(targetAndErrorIfAny.getTarget(), firstErrorMessage)
- : TransitiveTraversalValue.unsuccessfulTransitiveTraversal(firstErrorMessage);
+ : TransitiveTraversalValue.unsuccessfulTransitiveTraversal(
+ firstErrorMessage, targetAndErrorIfAny.getTarget());
}
@Override