Avoid implicit iteration over nested sets Use .toList() instead (this is equivalent, as iterator() calls toList().iterator()). PiperOrigin-RevId: 288466842
diff --git a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java index 4e3a3c9..ccc237a 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java +++ b/src/main/java/com/google/devtools/build/lib/actions/AbstractAction.java
@@ -246,7 +246,7 @@ public Artifact getPrimaryInput() { // The default behavior is to return the first input artifact. // Call through the method, not the field, because it may be overridden. - return Iterables.getFirst(getInputs(), null); + return Iterables.getFirst(getInputs().toList(), null); } @Override @@ -520,7 +520,7 @@ @Override public Depset getSkylarkInputs() { - return Depset.of(Artifact.TYPE, NestedSetBuilder.wrap(Order.STABLE_ORDER, getInputs())); + return Depset.of(Artifact.TYPE, getInputs()); } @Override
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java index 72ded14..ce203a0 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionCacheChecker.java
@@ -403,7 +403,7 @@ entry.addFile(output.getExecPath(), metadata); } } - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { entry.addFile(input.getExecPath(), getMetadataMaybe(metadataHandler, input)); } entry.getFileDigest(); @@ -514,7 +514,7 @@ // Since we never validate action key for middlemen, we should not store // it in the cache entry and just use empty string instead. entry = new ActionCache.Entry("", ImmutableMap.<String, String>of(), false); - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { entry.addFile(input.getExecPath(), getMetadataMaybe(metadataHandler, input)); } }
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionGraphVisitor.java b/src/main/java/com/google/devtools/build/lib/actions/ActionGraphVisitor.java index 6d335a8..e101621 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionGraphVisitor.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionGraphVisitor.java
@@ -77,7 +77,7 @@ @Override protected void black(ActionAnalysisMetadata action) { visitAction(action); - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { if (shouldVisit(input)) { visitWhiteNode(input); }
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java index af6bcbb..556ccba 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionInputHelper.java
@@ -49,18 +49,16 @@ // it cannot expand arbitrary middlemen without access to a global action graph. // We could check this constraint here too, but it seems unnecessary. This code is // going away anyway. - Preconditions.checkArgument(mm.isMiddlemanArtifact(), - "%s is not a middleman artifact", mm); + Preconditions.checkArgument(mm.isMiddlemanArtifact(), "%s is not a middleman artifact", mm); ActionAnalysisMetadata middlemanAction = actionGraph.getGeneratingAction(mm); Preconditions.checkState(middlemanAction != null, mm); // TODO(bazel-team): Consider expanding recursively or throwing an exception here. // Most likely, this code will cause silent errors if we ever have a middleman that // contains a middleman. if (middlemanAction.getActionType() == Action.MiddlemanType.AGGREGATING_MIDDLEMAN) { - Artifact.addNonMiddlemanArtifacts(middlemanAction.getInputs(), output, - Functions.<Artifact>identity()); + Artifact.addNonMiddlemanArtifacts( + middlemanAction.getInputs().toList(), output, Functions.<Artifact>identity()); } - } }; }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWriteNestedSetOfPairAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWriteNestedSetOfPairAction.java index 74b15cc..4ab985c 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWriteNestedSetOfPairAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/LazyWriteNestedSetOfPairAction.java
@@ -65,7 +65,7 @@ private String getContents() { if (fileContents == null) { StringBuilder stringBuilder = new StringBuilder(); - for (Pair<String, String> pair : pairsToWrite) { + for (Pair<String, String> pair : pairsToWrite.toList()) { stringBuilder .append(pair.first) .append(":")
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java index d8f62c5..73c58e4 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
@@ -206,16 +206,14 @@ // Validate that input path is a file with the executable bit is set. if (!inputPath.isFile()) { throw new ActionExecutionException( - "'" + Iterables.getOnlyElement(getInputs()).prettyPrint() + "' is not a file", - this, - false); + "'" + getInputs().getSingleton().prettyPrint() + "' is not a file", this, false); } if (!inputPath.isExecutable()) { throw new ActionExecutionException( "failed to create symbolic link '" + Iterables.getOnlyElement(getOutputs()).prettyPrint() + "': file '" - + Iterables.getOnlyElement(getInputs()).prettyPrint() + + getInputs().getSingleton().prettyPrint() + "' is not executable", this, false); @@ -225,7 +223,7 @@ "failed to create symbolic link '" + Iterables.getOnlyElement(getOutputs()).prettyPrint() + "' to the '" - + Iterables.getOnlyElement(getInputs()).prettyPrint() + + getInputs().getSingleton().prettyPrint() + "' due to I/O error: " + e.getMessage(), e, @@ -254,18 +252,24 @@ actionExecutionContext.getExecRoot().getRelative(getInputPath()).createDirectory(); } } catch (IOException e) { - throw new ActionExecutionException("failed to touch symbolic link '" - + Iterables.getOnlyElement(getOutputs()).prettyPrint() - + "' to the '" + Iterables.getOnlyElement(getInputs()).prettyPrint() - + "' due to I/O error: " + e.getMessage(), e, this, false); + throw new ActionExecutionException( + "failed to touch symbolic link '" + + Iterables.getOnlyElement(getOutputs()).prettyPrint() + + "' to the '" + + getInputs().getSingleton().prettyPrint() + + "' due to I/O error: " + + e.getMessage(), + e, + this, + false); } } private String printInputs() { - if (Iterables.isEmpty(getInputs())) { + if (getInputs().isEmpty()) { return inputPath.getPathString(); - } else if (Iterables.size(getInputs()) == 1){ - return Iterables.getOnlyElement(getInputs()).prettyPrint(); + } else if (getInputs().isSingleton()) { + return getInputs().getSingleton().prettyPrint(); } else { throw new IllegalStateException( "Inputs unexpectedly contains more than 1 element: " + getInputs());
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/Args.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/Args.java index 913c52d..1918c57 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/Args.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/Args.java
@@ -563,8 +563,8 @@ @Override public ImmutableSet<Artifact> getDirectoryArtifacts() { - for (Iterable<?> collection : potentialDirectoryArtifacts) { - scanForDirectories(collection); + for (NestedSet<?> collection : potentialDirectoryArtifacts) { + scanForDirectories(collection.toList()); } potentialDirectoryArtifacts.clear(); return ImmutableSet.copyOf(directoryArtifacts);
diff --git a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java index 66c527c..c266278 100644 --- a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
@@ -132,7 +132,7 @@ ImmutableMap.copyOf(executionInfo), action.getRunfilesSupplier(), ImmutableMap.of(), - /*inputs=*/ ImmutableList.copyOf(action.getInputs()), + /*inputs=*/ action.getInputs().toList(), /*tools=*/ ImmutableList.<Artifact>of(), ImmutableList.copyOf(action.getSpawnOutputs()), localResourceUsage);
diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/IncludeParser.java b/src/main/java/com/google/devtools/build/lib/includescanning/IncludeParser.java index acde8ac..aa030ad 100644 --- a/src/main/java/com/google/devtools/build/lib/includescanning/IncludeParser.java +++ b/src/main/java/com/google/devtools/build/lib/includescanning/IncludeParser.java
@@ -377,7 +377,7 @@ logger.warning("Error getting hints for " + packageFragment + ": " + e); continue; } - for (PathFragment file : globValue.getMatches()) { + for (PathFragment file : globValue.getMatches().toList()) { hints.add( artifactFactory.getSourceArtifact( packageFragment.getRelative(file), globKey.getPackageRoot()));
diff --git a/src/main/java/com/google/devtools/build/lib/query2/BUILD b/src/main/java/com/google/devtools/build/lib/query2/BUILD index 3a43ae3..3865f7d 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/BUILD +++ b/src/main/java/com/google/devtools/build/lib/query2/BUILD
@@ -65,6 +65,7 @@ ], deps = [ "//src/main/java/com/google/devtools/build/lib/actions", + "//src/main/java/com/google/devtools/build/lib/collect/nestedset", "//src/main/java/com/google/devtools/build/lib/query2/engine", "//third_party:guava", ],
diff --git a/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java index af180f7..96d4f42 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java +++ b/src/main/java/com/google/devtools/build/lib/query2/aquery/ActionGraphTextOutputFormatterCallback.java
@@ -182,25 +182,25 @@ } if (options.includeArtifacts) { - stringBuilder - .append(" Inputs: [") - .append( - Streams.stream(action.getInputs()) - .map(input -> input.getExecPathString()) - .sorted() - .collect(Collectors.joining(", "))) - .append("]\n") - .append(" Outputs: [") - .append( - Streams.stream(action.getOutputs()) - .map( - output -> - output.isTreeArtifact() - ? output.getExecPathString() + " (TreeArtifact)" - : output.getExecPathString()) - .sorted() - .collect(Collectors.joining(", "))) - .append("]\n"); + stringBuilder + .append(" Inputs: [") + .append( + action.getInputs().toList().stream() + .map(input -> input.getExecPathString()) + .sorted() + .collect(Collectors.joining(", "))) + .append("]\n") + .append(" Outputs: [") + .append( + Streams.stream(action.getOutputs()) + .map( + output -> + output.isTreeArtifact() + ? output.getExecPathString() + " (TreeArtifact)" + : output.getExecPathString()) + .sorted() + .collect(Collectors.joining(", "))) + .append("]\n"); } if (action instanceof AbstractAction) { @@ -257,7 +257,7 @@ if (options.includeParamFiles) { // Assumption: if an Action takes a param file as an input, it will be used // to provide params to the command. - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { String inputFileName = input.getExecPathString(); if (getParamFileNameToContentMap().containsKey(inputFileName)) { stringBuilder
diff --git a/src/main/java/com/google/devtools/build/lib/query2/aquery/AqueryUtils.java b/src/main/java/com/google/devtools/build/lib/query2/aquery/AqueryUtils.java index 9a0296e..1f36050 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/aquery/AqueryUtils.java +++ b/src/main/java/com/google/devtools/build/lib/query2/aquery/AqueryUtils.java
@@ -20,6 +20,7 @@ import com.google.common.collect.Streams; import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; import com.google.devtools.build.lib.actions.Artifact; +import com.google.devtools.build.lib.collect.nestedset.NestedSet; /** Utility class for Aquery */ public class AqueryUtils { @@ -33,7 +34,7 @@ */ public static boolean matchesAqueryFilters( ActionAnalysisMetadata action, AqueryActionFilter actionFilters) { - Iterable<Artifact> inputs = action.getInputs(); + NestedSet<Artifact> inputs = action.getInputs(); Iterable<Artifact> outputs = action.getOutputs(); String mnemonic = action.getMnemonic(); @@ -45,7 +46,7 @@ if (actionFilters.hasFilterForFunction(INPUTS)) { Boolean containsFile = - Streams.stream(inputs) + inputs.toList().stream() .anyMatch( artifact -> actionFilters.matchesAllPatternsForFunction(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java index 7950fee..a8f9be1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyCommon.java
@@ -941,7 +941,8 @@ } Iterable<Artifact> pySrcs = FileType.filter( - src.getProvider(FileProvider.class).getFilesToBuild(), PyRuleClasses.PYTHON_SOURCE); + src.getProvider(FileProvider.class).getFilesToBuild().toList(), + PyRuleClasses.PYTHON_SOURCE); Iterables.addAll(sourceFiles, pySrcs); if (Iterables.isEmpty(pySrcs)) { ruleContext.attributeWarning("srcs", @@ -995,12 +996,15 @@ PythonInfo info = PythonInfo.newBuilder() .addAllSourceFile(Artifact.toExecPaths(sources)) - .addAllDepFile(Artifact.toExecPaths(dependencies)) + .addAllDepFile(Artifact.toExecPaths(dependencies.toList())) .build(); return new PyPseudoAction( owner, - NestedSetBuilder.wrap(Order.STABLE_ORDER, Iterables.concat(sources, dependencies)), + NestedSetBuilder.<Artifact>stableOrder() + .addAll(sources) + .addTransitive(dependencies) + .build(), ImmutableList.of(output), "Python", PYTHON_INFO,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PyProviderUtils.java b/src/main/java/com/google/devtools/build/lib/rules/python/PyProviderUtils.java index 80a442a..0d8541d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PyProviderUtils.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PyProviderUtils.java
@@ -92,7 +92,7 @@ } else { NestedSet<Artifact> files = target.getProvider(FileProvider.class).getFilesToBuild(); return NestedSetBuilder.<Artifact>compileOrder() - .addAll(FileType.filter(files, PyRuleClasses.PYTHON_SOURCE)) + .addAll(FileType.filter(files.toList(), PyRuleClasses.PYTHON_SOURCE)) .build(); } } @@ -114,7 +114,7 @@ return PyStructUtils.getUsesSharedLibraries(getLegacyProvider(target)); } else { NestedSet<Artifact> files = target.getProvider(FileProvider.class).getFilesToBuild(); - return FileType.contains(files, CppFileTypes.SHARED_LIBRARY); + return FileType.contains(files.toList(), CppFileTypes.SHARED_LIBRARY); } }
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CriticalPathComputer.java b/src/main/java/com/google/devtools/build/lib/runtime/CriticalPathComputer.java index 3188ada..8259aa1 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CriticalPathComputer.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CriticalPathComputer.java
@@ -330,7 +330,7 @@ private void finalizeActionStat( long startTimeNanos, Action action, CriticalPathComponent component) { long finishTimeNanos = clock.nanoTime(); - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { addArtifactDependency(component, input, finishTimeNanos); } component.finishActionExecution(startTimeNanos, finishTimeNanos);
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 dd1f67a..c8aa624 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
@@ -336,7 +336,7 @@ continue; } - expandRecursiveHelper(actionGraph, middlemanAction.getInputs(), visited, result); + expandRecursiveHelper(actionGraph, middlemanAction.getInputs().toList(), visited, result); } } @@ -375,7 +375,7 @@ Set<Artifact> expandedArtifacts = Sets.newHashSet(); expandRecursive( env.getSkyframeExecutor().getActionGraph(env.getReporter()), - action.getInputs(), + action.getInputs().toList(), expandedArtifacts); for (Artifact input : expandedArtifacts) { if (filesDesired.remove(input.getRootRelativePath().getSafePathString())) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java index ed08925..fd920d7 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionInputMapHelper.java
@@ -16,7 +16,6 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; import com.google.devtools.build.lib.actions.ActionInputMapSink; import com.google.devtools.build.lib.actions.ActionLookupData; @@ -115,7 +114,7 @@ if (generatingAction instanceof SymlinkAction) { Artifact.DerivedArtifact outputManifest = - (Artifact.DerivedArtifact) Iterables.getOnlyElement(generatingAction.getInputs()); + (Artifact.DerivedArtifact) generatingAction.getInputs().getSingleton(); ActionLookupData manifestGeneratingKey = outputManifest.getGeneratingActionKey(); Preconditions.checkState( manifestGeneratingKey.getActionLookupKey().equals(filesetActionLookupKey), @@ -127,7 +126,7 @@ ActionAnalysisMetadata symlinkTreeAction = filesetActionLookupValue.getAction(manifestGeneratingKey.getActionIndex()); Artifact.DerivedArtifact inputManifest = - (Artifact.DerivedArtifact) Iterables.getOnlyElement(symlinkTreeAction.getInputs()); + (Artifact.DerivedArtifact) symlinkTreeAction.getInputs().getSingleton(); ActionLookupData inputManifestGeneratingKey = inputManifest.getGeneratingActionKey(); Preconditions.checkState( inputManifestGeneratingKey.getActionLookupKey().equals(filesetActionLookupKey),
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionRewindStrategy.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionRewindStrategy.java index f2fe907..3665fb1 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionRewindStrategy.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionRewindStrategy.java
@@ -385,7 +385,7 @@ ArrayList<Artifact.DerivedArtifact> newlyVisitedArtifacts, ArrayList<ActionLookupData> newlyVisitedActions) { - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { if (input.isSourceArtifact()) { continue; }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionSketchFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionSketchFunction.java index 454adae..3691662 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionSketchFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionSketchFunction.java
@@ -98,7 +98,7 @@ Action action = actionLookupValue.getAction(actionLookupData.getActionIndex()); List<Artifact> srcArtifacts = new ArrayList<>(); List<SketchKey> depActions = new ArrayList<>(); - for (Artifact artifact : action.getInputs()) { + for (Artifact artifact : action.getInputs().toList()) { if (artifact.isSourceArtifact()) { srcArtifacts.add(artifact); } else {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java index 690a569f..932a43c 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ArtifactFunction.java
@@ -36,7 +36,6 @@ import com.google.devtools.build.lib.actions.FilesetTraversalParams.PackageBoundaryMode; import com.google.devtools.build.lib.actions.MissingInputFileException; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.skyframe.RecursiveFilesystemTraversalFunction.RecursiveFilesystemTraversalException; import com.google.devtools.build.lib.skyframe.RecursiveFilesystemTraversalValue.ResolvedFile; @@ -263,7 +262,7 @@ return null; } Fingerprint fp = new Fingerprint(); - for (ResolvedFile file : value.getTransitiveFiles()) { + for (ResolvedFile file : value.getTransitiveFiles().toList()) { fp.addString(file.getNameInSymlinkTree().getPathString()); fp.addBytes(file.getMetadata().getDigest()); } @@ -321,11 +320,8 @@ ImmutableList.builder(); ImmutableList.Builder<Pair<Artifact, TreeArtifactValue>> directoryInputsBuilder = ImmutableList.builder(); - Iterable<Artifact> inputs = action.getInputs(); - if (inputs instanceof NestedSet) { - // Avoid iterating over nested set twice. - inputs = ((NestedSet<Artifact>) inputs).toList(); - } + // Avoid iterating over nested set twice. + Iterable<Artifact> inputs = action.getInputs().toList(); Map<SkyKey, SkyValue> values = env.getValues(Artifact.keys(inputs)); if (env.valuesMissing()) { return null;
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java index f3926b7..c3abfdb 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
@@ -202,7 +202,7 @@ encounteredPackageErrors.set(true); } - for (String packageName : lookup.getPackages()) { + for (String packageName : lookup.getPackages().toList()) { // TODO(bazel-team): Make RecursivePkgValue return NestedSet<PathFragment> so this transform // is unnecessary. PathFragment packageNamePathFragment = PathFragment.create(packageName);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValueRootPackageExtractor.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValueRootPackageExtractor.java index 990a39e..39013ad 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValueRootPackageExtractor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgValueRootPackageExtractor.java
@@ -65,7 +65,7 @@ root.asPath(), repository.getName()); ImmutableList.Builder<PackageIdentifier> packageIds = ImmutableList.builder(); - for (String packageName : lookup.getPackages()) { + for (String packageName : lookup.getPackages().toList()) { // TODO(bazel-team): Make RecursivePkgValue return NestedSet<PathFragment> so this transform // is unnecessary. PathFragment packageNamePathFragment = PathFragment.create(packageName);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/ActionGraphDump.java b/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/ActionGraphDump.java index 1fafa05..03eada4 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/ActionGraphDump.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/ActionGraphDump.java
@@ -33,9 +33,7 @@ import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget; import com.google.devtools.build.lib.buildeventstream.BuildEvent; 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.NestedSetView; -import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.packages.AspectDescriptor; import com.google.devtools.build.lib.query2.aquery.AqueryActionFilter; import com.google.devtools.build.lib.query2.aquery.AqueryUtils; @@ -185,7 +183,7 @@ if (includeParamFiles) { // Assumption: if an Action takes a params file as an input, it will be used // to provide params to the command. - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { String inputFileExecPath = input.getExecPathString(); if (getParamFileNameToContentMap().containsKey(inputFileExecPath)) { AnalysisProtos.ParamFile paramFile = @@ -225,11 +223,8 @@ if (includeArtifacts) { // Store inputs - Iterable<Artifact> inputs = action.getInputs(); - if (!(inputs instanceof NestedSet)) { - inputs = NestedSetBuilder.wrap(Order.STABLE_ORDER, inputs); - } - NestedSetView<Artifact> nestedSetView = new NestedSetView<>((NestedSet<Artifact>) inputs); + NestedSet<Artifact> inputs = action.getInputs(); + NestedSetView<Artifact> nestedSetView = new NestedSetView<>(inputs); if (nestedSetView.directs().size() > 0 || nestedSetView.transitives().size() > 0) { actionBuilder.addInputDepSetIds(knownNestedSets.dataToId(nestedSetView));
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java b/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java index fa36e5e..f973d15 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/actiongraph/v2/ActionGraphDump.java
@@ -33,9 +33,7 @@ import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget; import com.google.devtools.build.lib.buildeventstream.BuildEvent; 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.NestedSetView; -import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.packages.AspectDescriptor; import com.google.devtools.build.lib.query2.aquery.AqueryActionFilter; import com.google.devtools.build.lib.query2.aquery.AqueryUtils; @@ -181,7 +179,7 @@ if (includeParamFiles) { // Assumption: if an Action takes a params file as an input, it will be used // to provide params to the command. - for (Artifact input : action.getInputs()) { + for (Artifact input : action.getInputs().toList()) { String inputFileExecPath = input.getExecPathString(); if (getParamFileNameToContentMap().containsKey(inputFileExecPath)) { AnalysisProtosV2.ParamFile paramFile = @@ -221,11 +219,8 @@ if (includeArtifacts) { // Store inputs - Iterable<Artifact> inputs = action.getInputs(); - if (!(inputs instanceof NestedSet)) { - inputs = NestedSetBuilder.wrap(Order.STABLE_ORDER, inputs); - } - NestedSetView<Artifact> nestedSetView = new NestedSetView<>((NestedSet<Artifact>) inputs); + NestedSet<Artifact> inputs = action.getInputs(); + NestedSetView<Artifact> nestedSetView = new NestedSetView<>(inputs); if (nestedSetView.directs().size() > 0 || nestedSetView.transitives().size() > 0) { actionBuilder.addInputDepSetIds(