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;
}