Stop converting temporary direct deps to a set. In almost all cases, this conversion is unnecessary and wasteful. In the remaining cases, the set conversion can be explicit.

--
MOS_MIGRATED_REVID=122294939
diff --git a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
index 7b885b8..56bcd05 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
@@ -415,10 +415,11 @@
   public synchronized Iterable<SkyKey> getAllDirectDepsForIncompleteNode() {
     Preconditions.checkState(!isDone(), this);
     if (!isDirty()) {
-      return getTemporaryDirectDeps();
+      return Iterables.concat(getTemporaryDirectDeps());
     } else {
       return Iterables.concat(
-          getTemporaryDirectDeps(), buildingState.getAllRemainingDirtyDirectDeps());
+          Iterables.concat(getTemporaryDirectDeps()),
+          buildingState.getAllRemainingDirtyDirectDeps());
     }
   }
 
@@ -428,7 +429,7 @@
   }
 
   @Override
-  public synchronized Set<SkyKey> getTemporaryDirectDeps() {
+  public synchronized GroupedList<SkyKey> getTemporaryDirectDeps() {
     Preconditions.checkState(!isDone(), "temporary shouldn't be done: %s", this);
     return buildingState.getDirectDepsForBuild();
   }