Explicit iteration over NestedSet with toList()
This is in preparation for making NestedSet not implement Iterable.
PiperOrigin-RevId: 286170676
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
index 7247db8..677565f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java
@@ -39,6 +39,7 @@
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.Collection;
import java.util.LinkedHashSet;
+import java.util.List;
/**
* Utility functions for use during analysis.
@@ -73,10 +74,9 @@
// be called with Iterable<ConfiguredTarget>. Once the configured target lockdown is complete, we
// can eliminate the "extends" clauses.
/**
- * Returns the list of providers of the specified type from a set of transitive info
- * collections.
+ * Returns the list of providers of the specified type from a set of transitive info collections.
*/
- public static <C extends TransitiveInfoProvider> Iterable<C> getProviders(
+ public static <C extends TransitiveInfoProvider> List<C> getProviders(
Iterable<? extends TransitiveInfoCollection> prerequisites, Class<C> provider) {
ImmutableList.Builder<C> result = ImmutableList.builder();
for (TransitiveInfoCollection prerequisite : prerequisites) {
@@ -92,7 +92,7 @@
* Returns the list of declared providers (native and Skylark) of the specified Skylark key from a
* set of transitive info collections.
*/
- public static <T extends Info> Iterable<T> getProviders(
+ public static <T extends Info> List<T> getProviders(
Iterable<? extends TransitiveInfoCollection> prerequisites,
final NativeProvider<T> skylarkKey) {
ImmutableList.Builder<T> result = ImmutableList.builder();
@@ -109,7 +109,7 @@
* Returns the list of declared providers (native and Skylark) of the specified Skylark key from a
* set of transitive info collections.
*/
- public static <T extends Info> Iterable<T> getProviders(
+ public static <T extends Info> List<T> getProviders(
Iterable<? extends TransitiveInfoCollection> prerequisites,
final BuiltinProvider<T> skylarkKey) {
ImmutableList.Builder<T> result = ImmutableList.builder();
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
index 9200690..662bc15 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
@@ -203,7 +203,7 @@
toolsRunfilesBuilder.add(tool.getRunfilesSupplier());
} else {
// Map all depArtifacts to the respective label using the multimaps.
- Iterables.addAll(mapGet(tempLabelMap, label), files);
+ mapGet(tempLabelMap, label).addAll(files.toList());
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 4593bc5..b1b13d0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -1070,8 +1070,8 @@
* Returns all the providers of the specified type that are listed under the specified attribute
* of this target in the BUILD file.
*/
- public <C extends TransitiveInfoProvider> Iterable<C> getPrerequisites(String attributeName,
- Mode mode, final Class<C> classType) {
+ public <C extends TransitiveInfoProvider> List<C> getPrerequisites(
+ String attributeName, Mode mode, final Class<C> classType) {
AnalysisUtils.checkProvider(classType);
return AnalysisUtils.getProviders(getPrerequisites(attributeName, mode), classType);
}
@@ -1080,7 +1080,7 @@
* Returns all the declared providers (native and Skylark) for the specified constructor under the
* specified attribute of this target in the BUILD file.
*/
- public <T extends Info> Iterable<T> getPrerequisites(
+ public <T extends Info> List<T> getPrerequisites(
String attributeName, Mode mode, final NativeProvider<T> skylarkKey) {
return AnalysisUtils.getProviders(getPrerequisites(attributeName, mode), skylarkKey);
}
@@ -1089,7 +1089,7 @@
* Returns all the declared providers (native and Skylark) for the specified constructor under the
* specified attribute of this target in the BUILD file.
*/
- public <T extends Info> Iterable<T> getPrerequisites(
+ public <T extends Info> List<T> getPrerequisites(
String attributeName, Mode mode, final BuiltinProvider<T> skylarkKey) {
return AnalysisUtils.getProviders(getPrerequisites(attributeName, mode), skylarkKey);
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
index 41c9d7d..759bf0b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetCompleteEvent.java
@@ -139,7 +139,7 @@
ConfiguredTargetKey.of(
targetAndData.getConfiguredTarget(), targetAndData.getConfiguration());
postedAfterBuilder.add(BuildEventId.targetConfigured(aliasLabel));
- for (Cause cause : getRootCauses()) {
+ for (Cause cause : getRootCauses().toList()) {
postedAfterBuilder.add(BuildEventId.fromCause(cause));
}
this.postedAfter = postedAfterBuilder.build();
@@ -211,7 +211,7 @@
ConfiguredTargetAndData ct,
NestedSet<Cause> rootCauses,
NestedSet<ArtifactsInOutputGroup> outputs) {
- Preconditions.checkArgument(!Iterables.isEmpty(rootCauses));
+ Preconditions.checkArgument(!rootCauses.isEmpty());
return new TargetCompleteEvent(
ct, rootCauses, CompletionContext.FAILED_COMPLETION_CTX, outputs, false);
}
@@ -235,14 +235,14 @@
}
/** Get the root causes of the target. May be empty. */
- public Iterable<Cause> getRootCauses() {
+ public NestedSet<Cause> getRootCauses() {
return rootCauses;
}
public Iterable<Artifact> getLegacyFilteredImportantArtifacts() {
// TODO(ulfjack): This duplicates code in ArtifactsToBuild.
NestedSetBuilder<Artifact> builder = new NestedSetBuilder<>(outputs.getOrder());
- for (ArtifactsInOutputGroup artifactsInOutputGroup : outputs) {
+ for (ArtifactsInOutputGroup artifactsInOutputGroup : outputs.toList()) {
if (artifactsInOutputGroup.areImportant()) {
builder.addTransitive(artifactsInOutputGroup.getArtifacts());
}
@@ -260,7 +260,7 @@
@Override
public Collection<BuildEventId> getChildrenEvents() {
ImmutableList.Builder<BuildEventId> childrenBuilder = ImmutableList.builder();
- for (Cause cause : getRootCauses()) {
+ for (Cause cause : getRootCauses().toList()) {
childrenBuilder.add(BuildEventId.fromCause(cause));
}
if (isTest) {
@@ -347,10 +347,10 @@
@Override
public Collection<LocalFile> referencedLocalFiles() {
ImmutableList.Builder<LocalFile> builder = ImmutableList.builder();
- for (ArtifactsInOutputGroup group : outputs) {
+ for (ArtifactsInOutputGroup group : outputs.toList()) {
if (group.areImportant()) {
completionContext.visitArtifacts(
- filterFilesets(group.getArtifacts()),
+ filterFilesets(group.getArtifacts().toList()),
new ArtifactReceiver() {
@Override
public void accept(Artifact artifact) {
@@ -368,7 +368,7 @@
}
}
if (baselineCoverageArtifacts != null) {
- for (Artifact artifact : baselineCoverageArtifacts) {
+ for (Artifact artifact : baselineCoverageArtifacts.toList()) {
builder.add(
new LocalFile(
completionContext.pathResolver().toPath(artifact), LocalFileType.COVERAGE_OUTPUT));
@@ -417,7 +417,7 @@
@Override
public ReportedArtifacts reportedArtifacts() {
ImmutableSet.Builder<NestedSet<Artifact>> builder = ImmutableSet.builder();
- for (ArtifactsInOutputGroup artifactsInGroup : outputs) {
+ for (ArtifactsInOutputGroup artifactsInGroup : outputs.toList()) {
if (artifactsInGroup.areImportant()) {
builder.add(artifactsInGroup.getArtifacts());
}
@@ -439,7 +439,7 @@
private Iterable<OutputGroup> getOutputFilesByGroup(ArtifactGroupNamer namer) {
ImmutableList.Builder<OutputGroup> groups = ImmutableList.builder();
- for (ArtifactsInOutputGroup artifactsInOutputGroup : outputs) {
+ for (ArtifactsInOutputGroup artifactsInOutputGroup : outputs.toList()) {
if (!artifactsInOutputGroup.areImportant()) {
continue;
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
index 01a9fc8..82b100f 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
@@ -405,7 +405,7 @@
.addJoinedValues(
"classpath",
";",
- Iterables.transform(classpath, Artifact.ROOT_RELATIVE_PATH_STRING))
+ Iterables.transform(classpath.toList(), Artifact.ROOT_RELATIVE_PATH_STRING))
// TODO(laszlocsomor): Change the Launcher to accept multiple jvm_flags entries. As of
// 2019-02-13 the Launcher accepts just one jvm_flags entry, which contains all the
// flags, joined by TAB characters. The Launcher splits up the string to get the
diff --git a/src/main/java/com/google/devtools/build/lib/remote/BUILD b/src/main/java/com/google/devtools/build/lib/remote/BUILD
index 9066178..612af1a 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/remote/BUILD
@@ -36,6 +36,7 @@
"//src/main/java/com/google/devtools/build/lib/analysis/platform:platform_utils",
"//src/main/java/com/google/devtools/build/lib/authandtls",
"//src/main/java/com/google/devtools/build/lib/buildeventstream",
+ "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/profiler",
"//src/main/java/com/google/devtools/build/lib/remote/common",
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java
index 9f4a11b..83f3184 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteModule.java
@@ -20,7 +20,6 @@
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
import com.google.common.util.concurrent.ListeningScheduledExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.devtools.build.lib.actions.ActionInput;
@@ -38,6 +37,7 @@
import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploader;
import com.google.devtools.build.lib.buildeventstream.LocalFilesArtifactUploader;
import com.google.devtools.build.lib.buildtool.BuildRequest;
+import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.exec.ExecutorBuilder;
@@ -325,11 +325,11 @@
return ImmutableList.of();
}
boolean noPruningManifestsInBazel =
- Iterables.isEmpty(runfilesSupport.getRunfiles().getPruningManifests());
+ runfilesSupport.getRunfiles().getPruningManifests().isEmpty();
Preconditions.checkState(
noPruningManifestsInBazel, "Bazel should not have pruning manifests. This is a bug.");
ImmutableList.Builder<Artifact> runfilesBuilder = ImmutableList.builder();
- for (Artifact runfile : runfilesSupport.getRunfiles().getUnconditionalArtifacts()) {
+ for (Artifact runfile : runfilesSupport.getRunfiles().getUnconditionalArtifacts().toList()) {
if (runfile.isSourceArtifact()) {
continue;
}
@@ -346,7 +346,7 @@
return testProvider.getTestParams().getOutputs();
}
- private static Iterable<? extends ActionInput> getArtifactsToBuild(
+ private static NestedSet<? extends ActionInput> getArtifactsToBuild(
ConfiguredTarget buildTarget, TopLevelArtifactContext topLevelArtifactContext) {
return TopLevelArtifactHelper.getAllArtifactsToBuild(buildTarget, topLevelArtifactContext)
.getImportantArtifacts();
@@ -377,7 +377,7 @@
// When running a test download the test.log and test.xml.
filesToDownload.addAll(getTestOutputs(configuredTarget));
} else {
- filesToDownload.addAll(getArtifactsToBuild(configuredTarget, artifactContext));
+ filesToDownload.addAll(getArtifactsToBuild(configuredTarget, artifactContext).toList());
filesToDownload.addAll(getRunfiles(configuredTarget));
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java
index 9dac136..699bb87 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java
@@ -458,7 +458,7 @@
ImmutableList.Builder<Artifact> objectFiles = ImmutableList.builder();
objectFiles.addAll(ccCompilationOutputs.getObjectFiles(false));
- for (LibraryToLink library : depsCcLinkingContext.getLibraries()) {
+ for (LibraryToLink library : depsCcLinkingContext.getLibraries().toList()) {
if (isStaticMode
|| (library.getDynamicLibrary() == null && library.getInterfaceLibrary() == null)) {
if (library.getPicStaticLibrary() != null) {
@@ -804,7 +804,7 @@
.setOwner(ruleContext.getLabel())
.addNonCodeInputs(
ImmutableList.<Artifact>builder()
- .addAll(ccCompilationContext.getTransitiveCompilationPrerequisites())
+ .addAll(ccCompilationContext.getTransitiveCompilationPrerequisites().toList())
.addAll(common.getLinkerScripts())
.build())
.addUserLinkFlags(
@@ -1225,7 +1225,7 @@
(NestedSet<?>)
Depset.getSetFromNoneableParam(dynamicDepsField, Tuple.class, "dynamic_deps");
- for (Tuple<Object> exportsAndLinkerInput : dynamicDeps) {
+ for (Tuple<Object> exportsAndLinkerInput : dynamicDeps.toList()) {
List<String> exportsFromDynamicDep =
Sequence.castSkylarkListOrNoneToList(
exportsAndLinkerInput.get(0), String.class, "exports_from_dynamic_deps");
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
index ff0e60e..3dcd11e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
@@ -110,7 +110,7 @@
staticRuntimeLinkMiddleman =
staticRuntimeLinkMiddlemanSet.isEmpty()
? null
- : Iterables.getOnlyElement(staticRuntimeLinkMiddlemanSet);
+ : staticRuntimeLinkMiddlemanSet.getSingleton();
} else {
staticRuntimeLinkMiddleman = null;
}
@@ -129,7 +129,7 @@
if (dynamicRuntimeLib != null) {
NestedSetBuilder<Artifact> dynamicRuntimeLinkSymlinksBuilder = NestedSetBuilder.stableOrder();
for (Artifact artifact :
- dynamicRuntimeLib.getProvider(FileProvider.class).getFilesToBuild()) {
+ dynamicRuntimeLib.getProvider(FileProvider.class).getFilesToBuild().toList()) {
if (CppHelper.SHARED_LIBRARY_FILETYPES.matches(artifact.getFilename())) {
dynamicRuntimeLinkInputs.add(artifact);
dynamicRuntimeLinkSymlinksBuilder.add(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
index 75cd48f..5b90c3a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java
@@ -271,7 +271,7 @@
boolean includeLinkStaticInLtoIndexing) {
NestedSetBuilder<LinkerInputs.LibraryToLink> uniqueLibrariesBuilder =
NestedSetBuilder.linkOrder();
- for (LinkerInputs.LibraryToLink lib : originalUniqueLibraries) {
+ for (LinkerInputs.LibraryToLink lib : originalUniqueLibraries.toList()) {
if (!lib.containsObjectFiles()) {
uniqueLibrariesBuilder.add(lib);
continue;
@@ -404,7 +404,7 @@
boolean includeLinkStaticInLtoIndexing)
throws RuleErrorException {
Set<Artifact> compiled = new LinkedHashSet<>();
- for (LinkerInputs.LibraryToLink lib : uniqueLibraries) {
+ for (LinkerInputs.LibraryToLink lib : uniqueLibraries.toList()) {
compiled.addAll(lib.getLtoCompilationContext().getBitcodeFiles());
}
@@ -415,7 +415,7 @@
// statically linked, so we need to look at includeLinkStaticInLtoIndexing to decide whether
// to include its objects in the LTO indexing for this target.
if (includeLinkStaticInLtoIndexing) {
- for (LinkerInputs.LibraryToLink lib : uniqueLibraries) {
+ for (LinkerInputs.LibraryToLink lib : uniqueLibraries.toList()) {
if (!lib.containsObjectFiles()) {
continue;
}
@@ -434,7 +434,7 @@
BitcodeFiles bitcodeFiles = new BitcodeFiles(allBitcode);
ImmutableList.Builder<LtoBackendArtifacts> ltoOutputs = ImmutableList.builder();
- for (LinkerInputs.LibraryToLink lib : uniqueLibraries) {
+ for (LinkerInputs.LibraryToLink lib : uniqueLibraries.toList()) {
if (!lib.containsObjectFiles()) {
continue;
}
@@ -552,7 +552,7 @@
NestedSet<LibraryToLink> librariesToLink) {
ImmutableList.Builder<LinkerInputs.LibraryToLink> librariesToLinkBuilder =
ImmutableList.builder();
- for (LibraryToLink libraryToLink : librariesToLink) {
+ for (LibraryToLink libraryToLink : librariesToLink.toList()) {
LinkerInputs.LibraryToLink staticLibraryToLink =
libraryToLink.getStaticLibrary() == null ? null : libraryToLink.getStaticLibraryToLink();
LinkerInputs.LibraryToLink picStaticLibraryToLink =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
index c659c5a..a205f6f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
@@ -22,6 +22,9 @@
import com.google.devtools.build.lib.actions.CommandLine;
import com.google.devtools.build.lib.actions.CommandLineExpansionException;
import com.google.devtools.build.lib.collect.CollectionUtils;
+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.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.ExpansionException;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
@@ -48,7 +51,7 @@
// The feature config can be null for tests.
@Nullable private final FeatureConfiguration featureConfiguration;
private final ImmutableList<Artifact> buildInfoHeaderArtifacts;
- private final Iterable<Artifact> linkerInputArtifacts;
+ private final NestedSet<Artifact> linkerInputArtifacts;
private final LinkTargetType linkTargetType;
private final Link.LinkingMode linkingMode;
@Nullable private final PathFragment toolchainLibrariesSolibDir;
@@ -63,7 +66,7 @@
String actionName,
String forcedToolPath,
ImmutableList<Artifact> buildInfoHeaderArtifacts,
- Iterable<Artifact> linkerInputArtifacts,
+ NestedSet<Artifact> linkerInputArtifacts,
LinkTargetType linkTargetType,
Link.LinkingMode linkingMode,
@Nullable PathFragment toolchainLibrariesSolibDir,
@@ -100,7 +103,7 @@
}
/** Returns the (ordered, immutable) list of paths to the linker's input files. */
- public Iterable<Artifact> getLinkerInputArtifacts() {
+ public NestedSet<Artifact> getLinkerInputArtifacts() {
return linkerInputArtifacts;
}
@@ -450,7 +453,8 @@
private String forcedToolPath;
private ImmutableList<Artifact> buildInfoHeaderArtifacts = ImmutableList.of();
- private Iterable<Artifact> linkerInputArtifacts = ImmutableList.of();
+ private NestedSet<Artifact> linkerInputArtifacts =
+ NestedSetBuilder.emptySet(Order.STABLE_ORDER);
@Nullable private LinkTargetType linkTargetType;
private Link.LinkingMode linkingMode = Link.LinkingMode.STATIC;
@Nullable private PathFragment toolchainLibrariesSolibDir;
@@ -518,8 +522,8 @@
* staticness and the target type. This call makes an immutable copy of the inputs, if the
* provided Iterable isn't already immutable (see {@link CollectionUtils#makeImmutable}).
*/
- public Builder setLinkerInputArtifacts(Iterable<Artifact> linkerInputArtifacts) {
- this.linkerInputArtifacts = CollectionUtils.makeImmutable(linkerInputArtifacts);
+ public Builder setLinkerInputArtifacts(NestedSet<Artifact> linkerInputArtifacts) {
+ this.linkerInputArtifacts = linkerInputArtifacts;
return this;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java
index 9b0792d..5dcd61f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.rules.genrule;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.AbstractAction;
import com.google.devtools.build.lib.actions.ActionEnvironment;
@@ -45,7 +46,7 @@
ActionOwner owner,
NestedSet<Artifact> tools,
NestedSet<Artifact> inputs,
- Iterable<Artifact> outputs,
+ ImmutableSet<Artifact> outputs,
CommandLines commandLines,
ActionEnvironment env,
ImmutableMap<String, String> executionInfo,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBase.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBase.java
index 0c00d11..47749a6 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBase.java
@@ -246,7 +246,7 @@
ruleContext.getActionOwner(),
commandHelper.getResolvedTools(),
inputs.build(),
- filesToBuild,
+ filesToBuild.toSet(),
CommandLines.of(argv),
ruleContext.getConfiguration().getActionEnvironment(),
ImmutableMap.copyOf(executionInfo),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
index f2029b2..c561055 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
@@ -144,7 +144,7 @@
argsBuilder.addExports(provider);
} else {
NestedSet<Artifact> filesToBuild = info.getProvider(FileProvider.class).getFilesToBuild();
- for (Artifact jar : FileType.filter(filesToBuild, JavaSemantics.JAR)) {
+ for (Artifact jar : FileType.filter(filesToBuild.toList(), JavaSemantics.JAR)) {
argsBuilder
.addRuntimeJar(jar)
.addDirectCompileTimeJar(/* interfaceJar= */ jar, /* fullJar= */ jar);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
index 795bce1..413b305 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
@@ -21,7 +21,6 @@
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-import com.google.common.collect.Streams;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.OutputGroupInfo;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
@@ -206,7 +205,7 @@
*/
@Override
public String getValue() {
- return Streams.stream(jars)
+ return jars.toList().stream()
.map(artifact -> pathPrefix + "/" + artifact.getRootRelativePathString())
.collect(Collectors.joining(File.pathSeparator, "export JACOCO_METADATA_JARS=", ""));
}
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java
index 45b9c0e..dd1f67a 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/PrintActionCommand.java
@@ -253,7 +253,8 @@
// We do for extra actions, but as we're past the action graph building phase,
// we cannot call it without risking to trigger creation of OutputArtifacts post
// graph building phase (not allowed). Right now we do not need them for our scenarios.
- visitor.visitWhiteNodes(configuredTarget.getProvider(FileProvider.class).getFilesToBuild());
+ visitor.visitWhiteNodes(
+ configuredTarget.getProvider(FileProvider.class).getFilesToBuild().toList());
Iterable<ActionAnalysisMetadata> actions = visitor.getActions();
for (ActionAnalysisMetadata action : actions) {
@@ -283,7 +284,7 @@
return;
}
- for (Artifact artifact : artifacts) {
+ for (Artifact artifact : artifacts.toList()) {
ActionAnalysisMetadata action = actionGraph.getGeneratingAction(artifact);
if (filter.shouldOutput(action, configuredTarget, env)) {
if (action instanceof Action) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index f248720..c66b6c1 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -20,7 +20,6 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
-import com.google.common.collect.Streams;
import com.google.common.flogger.GoogleLogger;
import com.google.devtools.build.lib.actions.Actions;
import com.google.devtools.build.lib.actions.Actions.GeneratingActions;
@@ -364,7 +363,7 @@
if (unloadedToolchainContext != null) {
UnloadedToolchainContext finalUnloadedToolchainContext = unloadedToolchainContext;
Set<Label> toolchainDependencyErrors =
- Streams.stream(cvce.getRootCauses())
+ cvce.getRootCauses().toList().stream()
.map(Cause::getLabel)
.filter(l -> finalUnloadedToolchainContext.resolvedToolchainLabels().contains(l))
.collect(ImmutableSet.toImmutableSet());