Automated rollback of commit 7fe59b98eefc96a6310f0b0221d4e0f18e2a9000.
*** Reason for rollback ***
Fixed bug due to TransitiveTargetFunction requesting multiple Package dependencies when computing its aspect deps by only applying the optimization to TransitiveTraversalFunction.
*** Original change description ***
Automated rollback of commit cce164aed44aba1de244f0d764cd33a5cc6980b2.
PiperOrigin-RevId: 186766812
diff --git a/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java b/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java
index 7c5deab..2b0984d 100644
--- a/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java
+++ b/src/main/java/com/google/devtools/build/skyframe/AbstractSkyFunctionEnvironment.java
@@ -17,6 +17,7 @@
import com.google.common.base.Function;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
+import com.google.devtools.build.lib.util.GroupedList;
import com.google.devtools.build.skyframe.ValueOrExceptionUtils.BottomException;
import java.util.Collections;
import java.util.Map;
@@ -29,12 +30,27 @@
@VisibleForTesting
public abstract class AbstractSkyFunctionEnvironment implements SkyFunction.Environment {
protected boolean valuesMissing = false;
+ @Nullable private final GroupedList<SkyKey> temporaryDirectDeps;
+
private <E extends Exception> ValueOrException<E> getValueOrException(
SkyKey depKey, Class<E> exceptionClass) throws InterruptedException {
return ValueOrExceptionUtils.downconvert(
getValueOrException(depKey, exceptionClass, BottomException.class), exceptionClass);
}
+ public AbstractSkyFunctionEnvironment(@Nullable GroupedList<SkyKey> temporaryDirectDeps) {
+ this.temporaryDirectDeps = temporaryDirectDeps;
+ }
+
+ public AbstractSkyFunctionEnvironment() {
+ this(null);
+ }
+
+ @Override
+ public GroupedList<SkyKey> getTemporaryDirectDeps() {
+ return temporaryDirectDeps;
+ }
+
private <E1 extends Exception, E2 extends Exception>
ValueOrException2<E1, E2> getValueOrException(
SkyKey depKey, Class<E1> exceptionClass1, Class<E2> exceptionClass2)