Add an (unused) AttributeMap argument to Attribute.getConfigurationTransition.

This is to prepare Attribute to use TransitionFactory instead of a single
ConfigurationTransition.

Part of #7814.

PiperOrigin-RevId: 240195652
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
index f44b607..6120737 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
@@ -342,10 +342,12 @@
       collectPropagatingAspects(
           aspects, attribute.getName(), entry.getKey().getOwningAspect(), propagatingAspects);
 
+      // TODO(https://github.com/bazelbuild/bazel/issues/7814): Unify this and get rid of the
+      // check for splits, to directly use TransitionFactory.
       ConfigurationTransition attributeTransition =
           attribute.hasSplitConfigurationTransition()
               ? attribute.getSplitTransition(attributeMap)
-              : attribute.getConfigurationTransition();
+              : attribute.getConfigurationTransition(attributeMap);
       partiallyResolvedDeps.put(
           entry.getKey(),
           PartiallyResolvedDependency.of(toLabel, attributeTransition, propagatingAspects.build()));
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 e34f134..c60143b 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
@@ -1154,7 +1154,9 @@
       throw new IllegalStateException(getRuleClassNameForLogging() + " attribute " + attributeName
         + " is not a label type attribute");
     }
-    ConfigurationTransition transition = attributeDefinition.getConfigurationTransition();
+    // TODO(https://github.com/bazelbuild/bazel/issues/7814): Refactor this to be more clear and
+    // not require a specific ConfigurationTransition.
+    ConfigurationTransition transition = attributeDefinition.getConfigurationTransition(null);
     if (mode == Mode.HOST) {
       if (!(transition instanceof PatchTransition)) {
         throw new IllegalStateException(getRule().getLocation() + ": "
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index 14ad552..92ce809 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -2171,10 +2171,10 @@
   }
 
   /**
-   * Returns the configuration transition for this attribute for label or label
-   * list attributes. For other attributes it will always return {@code NONE}.
+   * Returns the configuration transition for this attribute for label or label list attributes. For
+   * other attributes it will always return {@code NONE}.
    */
-  public ConfigurationTransition getConfigurationTransition() {
+  public ConfigurationTransition getConfigurationTransition(AttributeMap usused) {
     return configTransition;
   }
 
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index dd16c74..f14a303 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -58,6 +58,7 @@
 import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
 import com.google.devtools.build.lib.syntax.StarlarkSemantics;
 import com.google.devtools.build.lib.syntax.Type;
+import com.google.devtools.build.lib.testutil.FakeAttributeMapper;
 import com.google.devtools.build.lib.testutil.MoreAsserts;
 import com.google.devtools.build.lib.util.FileTypeSet;
 import java.util.Collection;
@@ -587,7 +588,8 @@
   @Test
   public void testAttrCfgTarget() throws Exception {
     Attribute attr = buildAttribute("a1", "attr.label(cfg = 'target', allow_files = True)");
-    assertThat(attr.getConfigurationTransition()).isEqualTo(NoTransition.INSTANCE);
+    assertThat(attr.getConfigurationTransition(FakeAttributeMapper.empty()))
+        .isEqualTo(NoTransition.INSTANCE);
   }
 
   @Test