Add toList() calls for iteration over NestedSet (part 1)
This is in preparation for making NestedSet *not* implement Iterable anymore.
Change-Id: Ic60d9683eb7f32f9edd0653956d3407fcdef8d6b
Closes #10412.
Change-Id: Ic60d9683eb7f32f9edd0653956d3407fcdef8d6b
PiperOrigin-RevId: 285718807
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 0810a03..a2b2ca0 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
@@ -1548,7 +1548,7 @@
public static boolean isVisible(Label label, TransitiveInfoCollection prerequisite) {
// Check visibility attribute
for (PackageGroupContents specification :
- prerequisite.getProvider(VisibilityProvider.class).getVisibility()) {
+ prerequisite.getProvider(VisibilityProvider.class).getVisibility().toList()) {
if (specification.containsPackage(label.getPackageIdentifier())) {
return true;
}
@@ -2018,15 +2018,15 @@
// If we performed this check when allowedFileTypes == NO_FILE this would
// always throw an error in those cases
if (allowedFileTypes != FileTypeSet.NO_FILE) {
- Iterable<Artifact> artifacts =
+ NestedSet<Artifact> artifacts =
prerequisite.getConfiguredTarget().getProvider(FileProvider.class).getFilesToBuild();
- if (attribute.isSingleArtifact() && Iterables.size(artifacts) != 1) {
+ if (attribute.isSingleArtifact() && !artifacts.isSingleton()) {
attributeError(
attribute.getName(),
"'" + prerequisite.getTarget().getLabel() + "' must produce a single file");
return;
}
- for (Artifact sourceArtifact : artifacts) {
+ for (Artifact sourceArtifact : artifacts.toList()) {
if (allowedFileTypes.apply(sourceArtifact.getFilename())) {
return;
}