aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar mjhalupka <mjhalupka@google.com>2018-02-14 13:27:51 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-14 13:29:38 -0800
commit9ac0994cc2f9258417af6fe06742a17f43e83e5b (patch)
treeeb073015e255061d43a3eb8a5a8273416e230253 /src/main/java/com/google/devtools/build
parenta84e9e4dcc4bdc1a3b3f39605421ff7a451894d6 (diff)
Remove Target from ConfiguredTarget.
PiperOrigin-RevId: 185735582
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java38
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/EnvironmentGroupConfiguredTarget.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/PackageGroupConfiguredTarget.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java25
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndTarget.java10
11 files changed, 41 insertions, 86 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
index 78391b455b..b44dfd0edd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTarget.java
@@ -46,15 +46,6 @@ public interface ConfiguredTarget extends TransitiveInfoCollection, ClassObject,
String FILES_FIELD = "files";
/**
- * Returns the {@link Target} with which this {@link ConfiguredTarget} is associated.
- *
- * <p>Do not add new usages if possible. Prefer {@link #getLabel}, or use {@code
- * ConfiguredTargetAndTarget} objects.
- */
- @Deprecated
- Target getTarget();
-
- /**
* <p>Returns the {@link BuildConfiguration} for which this {@link ConfiguredTarget} is
* defined. Configuration is defined for all configured targets with exception
* of the {@link InputFileConfiguredTarget} for which it is always
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java
index c00f385c8e..395a83f316 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/AbstractConfiguredTarget.java
@@ -35,7 +35,6 @@ import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents;
import com.google.devtools.build.lib.packages.Provider;
-import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.syntax.ClassObject;
import com.google.devtools.build.lib.syntax.EvalException;
@@ -51,7 +50,7 @@ import javax.annotation.Nullable;
*/
public abstract class AbstractConfiguredTarget
implements ConfiguredTarget, VisibilityProvider, ClassObject {
- private final Target target;
+ private final Label label;
private final BuildConfiguration configuration;
private final NestedSet<PackageGroupContents> visibility;
@@ -63,15 +62,14 @@ public abstract class AbstractConfiguredTarget
private static final String DATA_RUNFILES_FIELD = "data_runfiles";
private static final String DEFAULT_RUNFILES_FIELD = "default_runfiles";
- public AbstractConfiguredTarget(Target target,
- BuildConfiguration configuration) {
- this.target = target;
+ public AbstractConfiguredTarget(Label label, BuildConfiguration configuration) {
+ this.label = label;
this.configuration = configuration;
this.visibility = NestedSetBuilder.emptySet(Order.STABLE_ORDER);
}
public AbstractConfiguredTarget(TargetContext targetContext) {
- this.target = targetContext.getTarget();
+ this.label = targetContext.getTarget().getLabel();
this.configuration = targetContext.getConfiguration();
this.visibility = targetContext.getVisibility();
}
@@ -82,23 +80,18 @@ public abstract class AbstractConfiguredTarget
}
@Override
- public Target getTarget() {
- return target;
- }
-
- @Override
public BuildConfiguration getConfiguration() {
return configuration;
}
@Override
public Label getLabel() {
- return getTarget().getLabel();
+ return label;
}
@Override
public String toString() {
- return "ConfiguredTarget(" + getTarget().getLabel() + ", " + getConfiguration() + ")";
+ return "ConfiguredTarget(" + getLabel() + ", " + getConfiguration() + ")";
}
@Override
@@ -133,12 +126,13 @@ public abstract class AbstractConfiguredTarget
if (declaredProvider != null) {
return declaredProvider;
}
- throw new EvalException(loc, Printer.format(
- "%r%s doesn't contain declared provider '%s'",
- this,
- getTarget().getAssociatedRule() == null ? ""
- : " (rule '" + getTarget().getAssociatedRule().getRuleClass() + "')",
- constructor.getPrintableName()));
+ throw new EvalException(
+ loc,
+ Printer.format(
+ "%r%s doesn't contain declared provider '%s'",
+ this,
+ getRuleClassString().isEmpty() ? "" : " (rule '" + getRuleClassString() + "')",
+ constructor.getPrintableName()));
}
@Override
@@ -201,6 +195,10 @@ public abstract class AbstractConfiguredTarget
@Nullable
protected abstract Info rawGetSkylarkProvider(Provider.Key providerKey);
+ protected String getRuleClassString() {
+ return "";
+ }
+
/**
* Returns a value provided by this target. Only meant to use from Skylark.
*/
@@ -230,6 +228,6 @@ public abstract class AbstractConfiguredTarget
// Exceptions are currently EnvironmentGroupConfiguredTarget and PackageGroupConfiguredTarget.
@Override
public void repr(SkylarkPrinter printer) {
- printer.append("<unknown target " + getTarget().getLabel() + ">");
+ printer.append("<unknown target " + getLabel() + ">");
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/EnvironmentGroupConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/EnvironmentGroupConfiguredTarget.java
index 9dbf668948..2e56cd2a2b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/EnvironmentGroupConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/EnvironmentGroupConfiguredTarget.java
@@ -31,11 +31,6 @@ public final class EnvironmentGroupConfiguredTarget extends AbstractConfiguredTa
}
@Override
- public EnvironmentGroup getTarget() {
- return (EnvironmentGroup) super.getTarget();
- }
-
- @Override
protected Info rawGetSkylarkProvider(Provider.Key providerKey) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
index 30e9f2f203..ec3c156117 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/FileConfiguredTarget.java
@@ -29,7 +29,6 @@ import com.google.devtools.build.lib.analysis.test.InstrumentedFilesProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.packages.FileTarget;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.Provider;
import com.google.devtools.build.lib.util.FileType;
@@ -66,11 +65,6 @@ public abstract class FileConfiguredTarget extends AbstractConfiguredTarget
this.providers = builder.build();
}
- @Override
- public FileTarget getTarget() {
- return (FileTarget) super.getTarget();
- }
-
public Artifact getArtifact() {
return artifact;
}
@@ -79,7 +73,7 @@ public abstract class FileConfiguredTarget extends AbstractConfiguredTarget
* Returns the file name of this file target.
*/
public String getFilename() {
- return getTarget().getFilename();
+ return getLabel().getName();
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java
index 45fee8d5e9..76fcb6683f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/InputFileConfiguredTarget.java
@@ -51,11 +51,6 @@ public final class InputFileConfiguredTarget extends FileConfiguredTarget implem
}
@Override
- public InputFile getTarget() {
- return (InputFile) super.getTarget();
- }
-
- @Override
public Artifact getArtifact() {
return artifact;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java
index fba49e1ca1..40c20c886e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/MergedConfiguredTarget.java
@@ -53,7 +53,7 @@ public final class MergedConfiguredTarget extends AbstractConfiguredTarget {
}
private MergedConfiguredTarget(ConfiguredTarget base, TransitiveInfoProviderMap providers) {
- super(base.getTarget(), base.getConfiguration());
+ super(base.getLabel(), base.getConfiguration());
this.base = base;
this.providers = providers;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java
index 4dde71b8f1..26743b6deb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/OutputFileConfiguredTarget.java
@@ -44,11 +44,6 @@ public class OutputFileConfiguredTarget extends FileConfiguredTarget
this.generatingRule = Preconditions.checkNotNull(generatingRule);
}
- @Override
- public OutputFile getTarget() {
- return (OutputFile) super.getTarget();
- }
-
public TransitiveInfoCollection getGeneratingRule() {
return generatingRule;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/PackageGroupConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/PackageGroupConfiguredTarget.java
index a729e69f0d..6173507859 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/PackageGroupConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/PackageGroupConfiguredTarget.java
@@ -53,8 +53,13 @@ public final class PackageGroupConfiguredTarget extends AbstractConfiguredTarget
PackageSpecificationProvider provider = include == null ? null
: include.getProvider(PackageSpecificationProvider.class);
if (provider == null) {
- targetContext.getAnalysisEnvironment().getEventHandler().handle(Event.error(getTarget().getLocation(),
- String.format("label '%s' does not refer to a package group", label)));
+ targetContext
+ .getAnalysisEnvironment()
+ .getEventHandler()
+ .handle(
+ Event.error(
+ targetContext.getTarget().getLocation(),
+ String.format("label '%s' does not refer to a package group", label)));
continue;
}
@@ -66,11 +71,6 @@ public final class PackageGroupConfiguredTarget extends AbstractConfiguredTarget
}
@Override
- public PackageGroup getTarget() {
- return (PackageGroup) super.getTarget();
- }
-
- @Override
public NestedSet<PackageGroupContents> getPackageSpecifications() {
return packageSpecifications;
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
index f79f4cf6db..9c7ec8fb36 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/configuredtargets/RuleConfiguredTarget.java
@@ -32,11 +32,9 @@ import com.google.devtools.build.lib.analysis.config.RunUnder;
import com.google.devtools.build.lib.analysis.skylark.SkylarkApiProvider;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.BlazeInterners;
-import com.google.devtools.build.lib.packages.ConfiguredAttributeMapper;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.Provider;
-import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.syntax.Printer;
@@ -75,6 +73,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
private final TransitiveInfoProviderMap providers;
private final ImmutableMap<Label, ConfigMatchingProvider> configConditions;
+ private final String ruleClassString;
public RuleConfiguredTarget(RuleContext ruleContext, TransitiveInfoProviderMap providers) {
super(ruleContext);
@@ -97,6 +96,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
this.providers = providerBuilder.build();
this.configConditions = ruleContext.getConfigConditions();
this.implicitDeps = IMPLICIT_DEPS_INTERNER.intern(Util.findImplicitDeps(ruleContext));
+ this.ruleClassString = ruleContext.getRule().getRuleClass();
// If this rule is the run_under target, then check that we have an executable; note that
// run_under is only set in the target configuration, and the target must also be analyzed for
@@ -128,6 +128,11 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
return implicitDeps;
}
+ @Override
+ protected String getRuleClassString() {
+ return ruleClassString;
+ }
+
@Nullable
@Override
public <P extends TransitiveInfoProvider> P getProvider(Class<P> providerClass) {
@@ -137,14 +142,9 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
}
@Override
- public final Rule getTarget() {
- return (Rule) super.getTarget();
- }
-
- @Override
public String getErrorMessageForUnknownField(String name) {
- return Printer.format("%r (rule '%s') doesn't have provider '%s'",
- this, getTarget().getRuleClass(), name);
+ return Printer.format(
+ "%r (rule '%s') doesn't have provider '%s'", this, getRuleClassString(), name);
}
@Override
@@ -171,11 +171,4 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
public void repr(SkylarkPrinter printer) {
printer.append("<target " + getLabel() + ">");
}
-
- /**
- * Returns a {@link ConfiguredAttributeMapper} containing values of this target's attributes.
- */
- public ConfiguredAttributeMapper getAttributeMapper() {
- return ConfiguredAttributeMapper.of(getTarget(), getConfigConditions());
- }
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
index ff5c287f36..d591aa2dc1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/AliasConfiguredTarget.java
@@ -27,7 +27,6 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.Provider;
-import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter;
import com.google.devtools.build.lib.syntax.ClassObject;
import com.google.devtools.build.lib.syntax.EvalException;
@@ -94,11 +93,6 @@ public final class AliasConfiguredTarget implements ConfiguredTarget, ClassObjec
}
@Override
- public Target getTarget() {
- return actual.getTarget();
- }
-
- @Override
public BuildConfiguration getConfiguration() {
// This does not return actual.getConfiguration() because actual might be an input file, in
// which case its configuration is null and we don't want to have rules that have a null
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndTarget.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndTarget.java
index 82ce77e8af..15480b6a5b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndTarget.java
@@ -36,11 +36,11 @@ public class ConfiguredTargetAndTarget {
this.configuredTarget = configuredTarget;
this.target = target;
Preconditions.checkState(
- configuredTarget.getTarget().equals(target),
- "%s %s %s",
- configuredTarget,
- target,
- configuredTarget.getTarget());
+ configuredTarget.getLabel().equals(target.getLabel()),
+ "Unable to construct ConfiguredTargetAndTarget:"
+ + " ConfiguredTarget's label %s is not equal to Target's label %s",
+ configuredTarget.getLabel(),
+ target.getLabel());
}
/**