Remove FilesToRunProvider.label.
The TransitiveInfoProvider already contains a label, use that instead.
--
MOS_MIGRATED_REVID=120443298
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
index 06e2c39..d7dc1d3 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/FileConfiguredTarget.java
@@ -46,8 +46,7 @@
.put(VisibilityProvider.class, this)
.put(LicensesProvider.class, this)
.put(FileProvider.class, new FileProvider(targetContext.getLabel(), filesToBuild))
- .put(FilesToRunProvider.class, FilesToRunProvider.fromSingleArtifact(
- targetContext.getLabel(), artifact));
+ .put(FilesToRunProvider.class, FilesToRunProvider.fromSingleExecutableArtifact(artifact));
if (this instanceof FilesetProvider) {
builder.put(FilesetProvider.class, this);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java
index 2dab4b3..35c0b9a 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/FilesToRunProvider.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.EmptyRunfilesSupplier;
import com.google.devtools.build.lib.actions.RunfilesSupplier;
-import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
@@ -34,14 +33,15 @@
/** The name of the field in Skylark used to access this class. */
public static final String SKYLARK_NAME = "files_to_run";
- private final Label label;
+ public static final FilesToRunProvider EMPTY =
+ new FilesToRunProvider(ImmutableList.<Artifact>of(), null, null);
+
private final ImmutableList<Artifact> filesToRun;
@Nullable private final RunfilesSupport runfilesSupport;
@Nullable private final Artifact executable;
- public FilesToRunProvider(Label label, ImmutableList<Artifact> filesToRun,
+ public FilesToRunProvider(ImmutableList<Artifact> filesToRun,
@Nullable RunfilesSupport runfilesSupport, @Nullable Artifact executable) {
- this.label = label;
this.filesToRun = filesToRun;
this.runfilesSupport = runfilesSupport;
this.executable = executable;
@@ -50,17 +50,8 @@
/**
* Creates an instance that contains one single executable and no other files.
*/
- public static FilesToRunProvider fromSingleArtifact(Label label, Artifact artifact) {
- return new FilesToRunProvider(label, ImmutableList.of(artifact), null, artifact);
- }
-
- /**
- * Returns the label that is associated with this piece of information.
- *
- * <p>This is usually the label of the target that provides the information.
- */
- public Label getLabel() {
- return label;
+ public static FilesToRunProvider fromSingleExecutableArtifact(Artifact artifact) {
+ return new FilesToRunProvider(ImmutableList.of(artifact), null, artifact);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java b/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
index d6c186b..d2b7e18 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LocationExpander.java
@@ -114,7 +114,7 @@
this.options = ImmutableSet.copyOf(options);
}
- public Map<Label, Collection<Artifact>> getLocationMap() {
+ private Map<Label, Collection<Artifact>> getLocationMap() {
if (locationMap == null) {
locationMap = buildLocationMap(ruleContext, labelMap, options.contains(Options.ALLOW_DATA));
}
@@ -288,30 +288,31 @@
}
// Add all locations associated with dependencies and tools
- List<FilesToRunProvider> depsDataAndTools = new ArrayList<>();
+ List<TransitiveInfoCollection> depsDataAndTools = new ArrayList<>();
if (ruleContext.getRule().isAttrDefined("deps", BuildType.LABEL_LIST)) {
Iterables.addAll(depsDataAndTools,
- ruleContext.getPrerequisites("deps", Mode.DONT_CHECK, FilesToRunProvider.class));
+ ruleContext.getPrerequisitesIf("deps", Mode.DONT_CHECK, FilesToRunProvider.class));
}
if (allowDataAttributeEntriesInLabel
&& ruleContext.getRule().isAttrDefined("data", BuildType.LABEL_LIST)) {
Iterables.addAll(depsDataAndTools,
- ruleContext.getPrerequisites("data", Mode.DATA, FilesToRunProvider.class));
+ ruleContext.getPrerequisitesIf("data", Mode.DATA, FilesToRunProvider.class));
}
if (ruleContext.getRule().isAttrDefined("tools", BuildType.LABEL_LIST)) {
Iterables.addAll(depsDataAndTools,
- ruleContext.getPrerequisites("tools", Mode.HOST, FilesToRunProvider.class));
+ ruleContext.getPrerequisitesIf("tools", Mode.HOST, FilesToRunProvider.class));
}
- for (FilesToRunProvider dep : depsDataAndTools) {
+ for (TransitiveInfoCollection dep : depsDataAndTools) {
Label label = dep.getLabel();
- Artifact executableArtifact = dep.getExecutable();
+ FilesToRunProvider filesToRun = dep.getProvider(FilesToRunProvider.class);
+ Artifact executableArtifact = filesToRun.getExecutable();
// If the label has an executable artifact add that to the multimaps.
if (executableArtifact != null) {
mapGet(locationMap, label).add(executableArtifact);
} else {
- mapGet(locationMap, label).addAll(dep.getFilesToRun());
+ mapGet(locationMap, label).addAll(filesToRun.getFilesToRun());
}
}
return locationMap;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
index abca5ad..dbf281c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
@@ -81,7 +81,7 @@
return null;
}
- FilesToRunProvider filesToRunProvider = new FilesToRunProvider(ruleContext.getLabel(),
+ FilesToRunProvider filesToRunProvider = new FilesToRunProvider(
getFilesToRun(runfilesSupport, filesToBuild), runfilesSupport, executable);
add(FileProvider.class, new FileProvider(ruleContext.getLabel(), filesToBuild));
add(FilesToRunProvider.class, filesToRunProvider);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigSetting.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigSetting.java
index c9a7acb..87770e7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigSetting.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigSetting.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.analysis.config;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.devtools.build.lib.actions.Artifact;
@@ -72,8 +71,7 @@
.add(RunfilesProvider.class, RunfilesProvider.EMPTY)
.add(FileProvider.class, new FileProvider(ruleContext.getLabel(),
NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER)))
- .add(FilesToRunProvider.class, new FilesToRunProvider(ruleContext.getLabel(),
- ImmutableList.<Artifact>of(), null, null))
+ .add(FilesToRunProvider.class, FilesToRunProvider.EMPTY)
.add(ConfigMatchingProvider.class, configMatcher)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
index 22def20..84d4186 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
@@ -14,7 +14,6 @@
package com.google.devtools.build.lib.analysis.constraints;
-import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.FileProvider;
@@ -55,8 +54,7 @@
.addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY)
.add(FileProvider.class, new FileProvider(ruleContext.getLabel(),
NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER)))
- .add(FilesToRunProvider.class, new FilesToRunProvider(ruleContext.getLabel(),
- ImmutableList.<Artifact>of(), null, null))
+ .add(FilesToRunProvider.class, FilesToRunProvider.EMPTY)
.build();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java
index 4ce4cfc..5158730 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidAaptActionHelper.java
@@ -73,7 +73,7 @@
// TODO(bazel-team): When using getFilesToRun(), the middleman is
// not expanded. Fix by providing code to expand and use getFilesToRun here.
RunfilesSupport aaptRunnerRunfiles = toolRunner.getRunfilesSupport();
- Preconditions.checkState(aaptRunnerRunfiles != null, toolRunner.getLabel());
+ Preconditions.checkState(aaptRunnerRunfiles != null);
// Note the below may be an overapproximation of the actual runfiles, due to "conditional
// artifacts" (see Runfiles.PruningManifest).
Iterables.addAll(inputs, aaptRunnerRunfiles.getRunfilesArtifactsWithoutMiddlemen());