Change return type of `keys` in `PackageValue` to `ImmutableList`.

PiperOrigin-RevId: 439347909
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java
index 0172abb..1918e83 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageValue.java
@@ -14,6 +14,7 @@
 package com.google.devtools.build.lib.skyframe;
 
 import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Interner;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
 import com.google.devtools.build.lib.concurrent.BlazeInterners;
@@ -26,8 +27,7 @@
 import com.google.devtools.build.skyframe.NotComparableSkyValue;
 import com.google.devtools.build.skyframe.SkyFunctionName;
 import com.google.devtools.build.skyframe.SkyKey;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Collection;
 
 /** A Skyframe value representing a package. */
 @AutoCodec(explicitlyAllowClass = Package.class)
@@ -82,11 +82,14 @@
     }
   }
 
-  public static List<SkyKey> keys(Iterable<PackageIdentifier> pkgIdentifiers) {
-    List<SkyKey> keys = new ArrayList<>();
+  public static ImmutableList<SkyKey> keys(Iterable<PackageIdentifier> pkgIdentifiers) {
+    ImmutableList.Builder<SkyKey> keys =
+        (pkgIdentifiers instanceof Collection)
+            ? ImmutableList.builderWithExpectedSize(((Collection) pkgIdentifiers).size())
+            : ImmutableList.builder();
     for (PackageIdentifier pkgIdentifier : pkgIdentifiers) {
       keys.add(key(pkgIdentifier));
     }
-    return keys;
+    return keys.build();
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java
index 276c7e5..9a0422c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestExpansionFunction.java
@@ -13,6 +13,7 @@
 // limitations under the License.
 package com.google.devtools.build.lib.skyframe;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
@@ -154,7 +155,7 @@
           labels.add(label);
           pkgIdentifiers.add(label.getPackageIdentifier());
         });
-    List<SkyKey> skyKeys = PackageValue.keys(pkgIdentifiers);
+    ImmutableList<SkyKey> skyKeys = PackageValue.keys(pkgIdentifiers);
     SkyframeIterableResult packages = env.getOrderedValuesAndExceptions(skyKeys);
     if (env.valuesMissing()) {
       return false;