Don't expose grouped direct deps of done nodes. Callers are actually interested in the compressed form.

PiperOrigin-RevId: 245827814
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 1ead12f..94d6de2 100644
--- a/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
+++ b/src/main/java/com/google/devtools/build/skyframe/InMemoryNodeEntry.java
@@ -211,17 +211,14 @@
 
   @Override
   public synchronized Iterable<SkyKey> getDirectDeps() {
-    return getGroupedDirectDeps().getAllElementsAsIterable();
+    return GroupedList.compressedToIterable(getCompressedDirectDepsForDoneEntry());
   }
 
-  /**
-   * If {@code isDone()}, returns the ordered list of sets of grouped direct dependencies that were
-   * added in {@link #addTemporaryDirectDeps}.
-   */
-  public synchronized GroupedList<SkyKey> getGroupedDirectDeps() {
+  /** Returns the compressed {@link GroupedList} of direct deps. Can only be called when done. */
+  public synchronized @GroupedList.Compressed Object getCompressedDirectDepsForDoneEntry() {
     assertKeepDeps();
     Preconditions.checkState(isDone(), "no deps until done. NodeEntry: %s", this);
-    return GroupedList.create(directDeps);
+    return Preconditions.checkNotNull(directDeps, "deps can't be null: %s", this);
   }
 
   public int getNumDirectDeps() {