Similar to TargetMarkerValue, have TargetPatternValue *not* embed Targets.

[]TESTED: See

--
MOS_MIGRATED_REVID=91816612
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java
index c97194f..50cdc9b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternValue.java
@@ -19,12 +19,10 @@
 import com.google.devtools.build.lib.cmdline.ResolvedTargets.Builder;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
-import com.google.devtools.build.lib.packages.NoSuchTargetException;
-import com.google.devtools.build.lib.packages.Package;
-import com.google.devtools.build.lib.packages.Target;
 import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
 import com.google.devtools.build.lib.pkgcache.FilteringPolicy;
 import com.google.devtools.build.lib.syntax.Label;
+import com.google.devtools.build.lib.syntax.Label.SyntaxException;
 import com.google.devtools.build.skyframe.SkyKey;
 import com.google.devtools.build.skyframe.SkyValue;
 
@@ -34,12 +32,8 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
 
 /**
  * A value referring to a computed set of resolved targets. This is used for the results of target
@@ -49,62 +43,50 @@
 @ThreadSafe
 public final class TargetPatternValue implements SkyValue {
 
-  private ResolvedTargets<Target> targets;
+  private ResolvedTargets<Label> targets;
 
-  TargetPatternValue(ResolvedTargets<Target> targets) {
+  TargetPatternValue(ResolvedTargets<Label> targets) {
     this.targets = Preconditions.checkNotNull(targets);
   }
 
   private void writeObject(ObjectOutputStream out) throws IOException {
-    Set<Package> packages = new LinkedHashSet<>();
     List<String> ts = new ArrayList<>();
     List<String> filteredTs = new ArrayList<>();
-    for (Target target : targets.getTargets()) {
-      packages.add(target.getPackage());
-      ts.add(target.getLabel().toString());
+    for (Label target : targets.getTargets()) {
+      ts.add(target.toString());
     }
-    for (Target target : targets.getFilteredTargets()) {
-      packages.add(target.getPackage());
-      filteredTs.add(target.getLabel().toString());
+    for (Label target : targets.getFilteredTargets()) {
+      filteredTs.add(target.toString());
     }
 
-    out.writeObject(packages);
     out.writeObject(ts);
     out.writeObject(filteredTs);
   }
 
+  private Label labelFromString(String labelString) {
+    try {
+      return Label.parseAbsolute(labelString);
+    } catch (SyntaxException e) {
+      throw new IllegalStateException(e);
+    }
+  }
+
   @SuppressWarnings("unchecked")
   private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
-    Set<Package> packages = (Set<Package>) in.readObject();
     List<String> ts = (List<String>) in.readObject();
     List<String> filteredTs = (List<String>) in.readObject();
 
-    Map<String, Package> packageMap = new HashMap<>();
-    for (Package p : packages) {
-      packageMap.put(p.getName(), p);
-    }
-
-    Builder<Target> builder = ResolvedTargets.<Target>builder();
+    Builder<Label> builder = ResolvedTargets.<Label>builder();
     for (String labelString : ts) {
-      builder.add(lookupTarget(packageMap, labelString));
+      builder.add(labelFromString(labelString));
     }
 
     for (String labelString : filteredTs) {
-      builder.remove(lookupTarget(packageMap, labelString));
+      builder.remove(labelFromString(labelString));
     }
     this.targets = builder.build();
   }
 
-  private static Target lookupTarget(Map<String, Package> packageMap, String labelString) {
-    Label label = Label.parseAbsoluteUnchecked(labelString);
-    Package p = packageMap.get(label.getPackageName());
-    try {
-      return p.getTarget(label.getName());
-    } catch (NoSuchTargetException e) {
-      throw new IllegalStateException(e);
-    }
-  }
-
   @SuppressWarnings("unused")
   private void readObjectNoData() {
     throw new IllegalStateException();
@@ -148,7 +130,7 @@
      return keys;
    }
 
-  public ResolvedTargets<Target> getTargets() {
+  public ResolvedTargets<Label> getTargets() {
     return targets;
   }