Remove TargetApi and make Target not-a StarlarkValue.

Target objects are apparently never exposed to Starlark.

RELNOTES: None.
PiperOrigin-RevId: 690524294
Change-Id: I7e1201e8970f9759cd65c026c14c3af29d807878
diff --git a/src/main/java/com/google/devtools/build/lib/packages/EnvironmentGroup.java b/src/main/java/com/google/devtools/build/lib/packages/EnvironmentGroup.java
index 7430400..bfe03ba 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/EnvironmentGroup.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/EnvironmentGroup.java
@@ -104,11 +104,6 @@
     this.containingPackage = pkg;
   }
 
-  @Override
-  public boolean isImmutable() {
-    return true; // immutable and Starlark-hashable
-  }
-
   public EnvironmentLabels getEnvironmentLabels() {
     environmentLabels.checkInitialized();
     return environmentLabels;
@@ -266,11 +261,6 @@
   }
 
   @Override
-  public String getName() {
-    return environmentLabels.label.getName();
-  }
-
-  @Override
   public Package getPackage() {
     return containingPackage;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/FileTarget.java b/src/main/java/com/google/devtools/build/lib/packages/FileTarget.java
index 928090d..8941c5f 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/FileTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/FileTarget.java
@@ -35,11 +35,6 @@
     this.label = label;
   }
 
-  @Override
-  public boolean isImmutable() {
-    return true; // immutable and Starlark-hashable
-  }
-
   public String getFilename() {
     return label.getName();
   }
@@ -50,11 +45,6 @@
   }
 
   @Override
-  public String getName() {
-    return label.getName();
-  }
-
-  @Override
   public String filePathForFileTypeMatcher() {
     return getFilename();
   }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageGroup.java b/src/main/java/com/google/devtools/build/lib/packages/PackageGroup.java
index ed58c35..9f6d835 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageGroup.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageGroup.java
@@ -118,11 +118,6 @@
   }
 
   @Override
-  public String getName() {
-    return label.getName();
-  }
-
-  @Override
   public License getLicense() {
     return License.NO_LICENSE;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Rule.java b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
index ac408f6..c247b3e 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Rule.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Rule.java
@@ -198,11 +198,6 @@
   }
 
   @Override
-  public String getName() {
-    return label.getName();
-  }
-
-  @Override
   public Package getPackage() {
     return pkg;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Target.java b/src/main/java/com/google/devtools/build/lib/packages/Target.java
index a8a9954..8e65d7b 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Target.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Target.java
@@ -16,7 +16,6 @@
 
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.License.DistributionType;
-import com.google.devtools.build.lib.starlarkbuildapi.TargetApi;
 import java.util.List;
 import java.util.Set;
 import javax.annotation.Nullable;
@@ -27,7 +26,7 @@
  * <p>This StarlarkBuiltin does not contain any documentation since Starlark's Target type refers to
  * TransitiveInfoCollection.class, which contains the appropriate documentation.
  */
-public interface Target extends TargetApi, TargetData {
+public interface Target extends TargetData {
 
   /** Returns the Package to which this target belongs. */
   Package getPackage();
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TargetData.java b/src/main/java/com/google/devtools/build/lib/packages/TargetData.java
index 9da41cc..60bae5d 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TargetData.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TargetData.java
@@ -50,6 +50,16 @@
     return ImmutableSet.of();
   }
 
+  /**
+   * Returns the name part of the label of the target.
+   *
+   * <p>Equivalent to {@code getLabel().getName()}.
+   */
+  default String getName() {
+    return getLabel().getName();
+  }
+
+  /** Returns the label of the target. */
   Label getLabel();
 
   default boolean isRule() {
diff --git a/src/main/java/com/google/devtools/build/lib/query2/compat/FakeLoadTarget.java b/src/main/java/com/google/devtools/build/lib/query2/compat/FakeLoadTarget.java
index 9de95f3..89d10e9 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/compat/FakeLoadTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/compat/FakeLoadTarget.java
@@ -45,11 +45,6 @@
   }
 
   @Override
-  public String getName() {
-    return label.getName();
-  }
-
-  @Override
   public Package getPackage() {
     return pkg;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/TargetApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/TargetApi.java
deleted file mode 100644
index ab6e2a2..0000000
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/TargetApi.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2018 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//    http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.starlarkbuildapi;
-
-import com.google.devtools.build.lib.cmdline.Label;
-import net.starlark.java.annot.StarlarkBuiltin;
-import net.starlark.java.annot.StarlarkMethod;
-import net.starlark.java.eval.StarlarkValue;
-
-/** A node in the build dependency graph, identified by a Label. */
-@StarlarkBuiltin(name = "target", doc = "", documented = false)
-public interface TargetApi extends StarlarkValue {
-
-  /** Returns the label of this target. (e.g. "//foo:bar") */
-  @StarlarkMethod(name = "label", documented = false)
-  Label getLabel();
-
-  /** Returns the name of this rule (relative to its owning package). */
-  @StarlarkMethod(name = "name", documented = false)
-  String getName();
-}
diff --git a/src/test/java/com/google/devtools/build/lib/cmdline/LabelInternerIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/cmdline/LabelInternerIntegrationTest.java
index 0f1c819..1babdb0 100644
--- a/src/test/java/com/google/devtools/build/lib/cmdline/LabelInternerIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/cmdline/LabelInternerIntegrationTest.java
@@ -27,8 +27,8 @@
 import com.google.devtools.build.lib.cmdline.Label.LabelInterner;
 import com.google.devtools.build.lib.concurrent.BlazeInterners;
 import com.google.devtools.build.lib.packages.Rule;
+import com.google.devtools.build.lib.packages.Target;
 import com.google.devtools.build.lib.skyframe.PackageValue;
-import com.google.devtools.build.lib.starlarkbuildapi.TargetApi;
 import com.google.devtools.build.skyframe.InMemoryGraph;
 import com.google.devtools.build.skyframe.NodeEntry;
 import com.google.devtools.build.skyframe.NodeEntry.DirtyType;
@@ -135,7 +135,7 @@
     ImmutableSet<Label> targetLabels =
         ((PackageValue) nodeEntry.toValue())
             .getPackage().getTargets().values().stream()
-                .map(TargetApi::getLabel)
+                .map(Target::getLabel)
                 .collect(toImmutableSet());
 
     nodeEntry.markDirty(DirtyType.DIRTY);
@@ -161,7 +161,7 @@
     ImmutableSet<Label> targetLabels =
         ((PackageValue) nodeEntry.toValue())
             .getPackage().getTargets().values().stream()
-                .map(TargetApi::getLabel)
+                .map(Target::getLabel)
                 .collect(toImmutableSet());
 
     nodeEntry.markDirty(DirtyType.DIRTY);
@@ -203,7 +203,7 @@
     Set<Label> targetLabels =
         ((PackageValue) nodeEntry.toValue())
             .getPackage().getTargets().values().stream()
-                .map(TargetApi::getLabel)
+                .map(Target::getLabel)
                 .collect(toCollection(Sets::newIdentityHashSet));
 
     // Target label //hello:foo stored in InMemoryGraph should exist and be the same instance as
diff --git a/src/test/java/com/google/devtools/build/lib/graph/DigraphTest.java b/src/test/java/com/google/devtools/build/lib/graph/DigraphTest.java
index 7a23925..132f3df 100644
--- a/src/test/java/com/google/devtools/build/lib/graph/DigraphTest.java
+++ b/src/test/java/com/google/devtools/build/lib/graph/DigraphTest.java
@@ -55,11 +55,6 @@
     }
 
     @Override
-    public String getName() {
-      return null;
-    }
-
-    @Override
     public Package getPackage() {
       return null;
     }