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