Improve the name of supportsPlatforms by renaming to useToolchainResolution.

PiperOrigin-RevId: 253632079
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java
index d13ec9f..ca19869 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java
@@ -65,10 +65,7 @@
           <code>data</code></a> for more information about how to depend on and use data files.
         </p>
         <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
-        .add(
-            attr("data", LABEL_LIST)
-                .allowedFileTypes(FileTypeSet.ANY_FILE)
-                .dontCheckConstraints())
+        .add(attr("data", LABEL_LIST).allowedFileTypes(FileTypeSet.ANY_FILE).dontCheckConstraints())
         .add(attr("output_licenses", LICENSE))
         /*<!-- #BLAZE_RULE(filegroup).ATTRIBUTE(path) -->
         An optional string to set a path to the files in the group, relative to the package path.
@@ -81,7 +78,7 @@
             attr("path", STRING)
                 .undocumented(
                     "only used to expose FilegroupPathProvider, which is not currently used"))
-        .supportsPlatforms(false)
+        .useToolchainResolution(false)
         .build();
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index 4528501..e8017c27 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -725,7 +725,7 @@
 
     private final Map<String, Attribute> attributes = new LinkedHashMap<>();
     private final Set<Label> requiredToolchains = new HashSet<>();
-    private boolean supportsPlatforms = true;
+    private boolean useToolchainResolution = true;
     private ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed =
         ExecutionPlatformConstraintsAllowed.PER_RULE;
     private Set<Label> executionPlatformConstraints = new HashSet<>();
@@ -761,7 +761,7 @@
         supportsConstraintChecking = parent.supportsConstraintChecking;
 
         addRequiredToolchains(parent.getRequiredToolchains());
-        supportsPlatforms = parent.supportsPlatforms;
+        useToolchainResolution = parent.useToolchainResolution;
 
         // Make sure we use the highest priority value from all parents.
         executionPlatformConstraintsAllowed(
@@ -885,7 +885,7 @@
           supportsConstraintChecking,
           thirdPartyLicenseExistencePolicy,
           requiredToolchains,
-          supportsPlatforms,
+          useToolchainResolution,
           executionPlatformConstraintsAllowed,
           executionPlatformConstraints,
           outputFileKind,
@@ -1387,11 +1387,11 @@
     }
 
     /**
-     * Rules that support platforms can use toolchains and execution platforms. Rules that are part
-     * of configuring toolchains and platforms should set this to {@code false}.
+     * Causes rules to use toolchain resolution to determine the execution platform and toolchains.
+     * Rules that are part of configuring toolchains and platforms should set this to {@code false}.
      */
-    public Builder supportsPlatforms(boolean flag) {
-      this.supportsPlatforms = flag;
+    public Builder useToolchainResolution(boolean flag) {
+      this.useToolchainResolution = flag;
       return this;
     }
 
@@ -1556,7 +1556,7 @@
   private final ThirdPartyLicenseExistencePolicy thirdPartyLicenseExistencePolicy;
 
   private final ImmutableSet<Label> requiredToolchains;
-  private final boolean supportsPlatforms;
+  private final boolean useToolchainResolution;
   private final ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed;
   private final ImmutableSet<Label> executionPlatformConstraints;
 
@@ -1611,7 +1611,7 @@
       boolean supportsConstraintChecking,
       ThirdPartyLicenseExistencePolicy thirdPartyLicenseExistencePolicy,
       Set<Label> requiredToolchains,
-      boolean supportsPlatforms,
+      boolean useToolchainResolution,
       ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed,
       Set<Label> executionPlatformConstraints,
       OutputFile.Kind outputFileKind,
@@ -1650,7 +1650,7 @@
     this.supportsConstraintChecking = supportsConstraintChecking;
     this.thirdPartyLicenseExistencePolicy = thirdPartyLicenseExistencePolicy;
     this.requiredToolchains = ImmutableSet.copyOf(requiredToolchains);
-    this.supportsPlatforms = supportsPlatforms;
+    this.useToolchainResolution = useToolchainResolution;
     this.executionPlatformConstraintsAllowed = executionPlatformConstraintsAllowed;
     this.executionPlatformConstraints = ImmutableSet.copyOf(executionPlatformConstraints);
     this.buildSetting = buildSetting;
@@ -2559,8 +2559,8 @@
     return requiredToolchains;
   }
 
-  public boolean supportsPlatforms() {
-    return supportsPlatforms;
+  public boolean useToolchainResolution() {
+    return useToolchainResolution;
   }
 
   public ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed() {
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
index 8787b59..b296515 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
@@ -216,7 +216,7 @@
     }
 
     Rule rule = ((Rule) target);
-    if (!rule.getRuleClassObject().supportsPlatforms()) {
+    if (!rule.getRuleClassObject().useToolchainResolution()) {
       return null;
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/Alias.java b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
index 1567b7c..5348588 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/Alias.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
@@ -74,9 +74,9 @@
                   .mandatory())
           .canHaveAnyProvider()
           // Aliases themselves do not need toolchains or an execution platform, so this is fine.
-          // The actual target
-          // will resolve platforms and toolchains with no issues regardless of this setting.
-          .supportsPlatforms(false)
+          // The actual target will resolve platforms and toolchains with no issues regardless of
+          // this setting.
+          .useToolchainResolution(false)
           .build();
     }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java b/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
index a816c53..a09c943 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
@@ -70,7 +70,7 @@
         .add(attr(":alias", LABEL).value(ACTUAL))
         .setBuildSetting(new BuildSetting(flag, LABEL))
         .canHaveAnyProvider()
-        .supportsPlatforms(false)
+        .useToolchainResolution(false)
         .build();
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
index edb1552..597a8cd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
@@ -50,7 +50,7 @@
     @Override
     public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment environment) {
       return builder
-          .supportsPlatforms(false)
+          .useToolchainResolution(false)
           .removeAttribute("licenses")
           .removeAttribute("distribs")
           .build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java
index 424d537..2ee2827 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java
@@ -41,7 +41,7 @@
                 .value(ImmutableList.of("manual"))
                 .nonconfigurable("low-level attribute, used in platform configuration"))
         .exemptFromConstraintChecking("this rule helps *define* a constraint")
-        .supportsPlatforms(false)
+        .useToolchainResolution(false)
         .removeAttribute("deps")
         .removeAttribute("data")
         .build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
index 5fedc80..c1aa78b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
@@ -47,7 +47,7 @@
         .removeAttribute("deps")
         .removeAttribute("data")
         .exemptFromConstraintChecking("this rule *defines* a constraint")
-        .supportsPlatforms(false)
+        .useToolchainResolution(false)
 
         /* <!-- #BLAZE_RULE(toolchain).ATTRIBUTE(toolchain_type) -->
         The label of a <code>toolchain_type</code> target that represents the role that this
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 94231f6..d674b5c 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
@@ -448,7 +448,7 @@
       return null;
     }
     Rule rule = ((Rule) targetAndConfig.getTarget());
-    if (!rule.getRuleClassObject().supportsPlatforms()) {
+    if (!rule.getRuleClassObject().useToolchainResolution()) {
       return null;
     }
     BuildConfiguration configuration = targetAndConfig.getConfiguration();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
index 0351338..634072e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
@@ -112,7 +112,7 @@
     try {
       if (configuredTargetAndData.getTarget() instanceof Rule) {
         Rule rule = ((Rule) configuredTargetAndData.getTarget());
-        if (rule.getRuleClassObject().supportsPlatforms()) {
+        if (rule.getRuleClassObject().useToolchainResolution()) {
           ImmutableSet<Label> requiredToolchains =
               rule.getRuleClassObject().getRequiredToolchains();
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
index 255fe0e..d6b64bd 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
@@ -235,13 +235,9 @@
         return true;
       }
 
-      // If the rule requires platforms, it can't be used as a platform.
+      // If the rule requires platforms or toolchain resolution, it can't be used as a platform.
       RuleClass ruleClass = target.getAssociatedRule().getRuleClassObject();
-      if (ruleClass == null) {
-        return false;
-      }
-
-      if (ruleClass.supportsPlatforms()) {
+      if (ruleClass == null || ruleClass.useToolchainResolution()) {
         return false;
       }