diff options
Diffstat (limited to 'src/main')
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()); } /** |