Rename Transition to ConfigurationTransition.

PiperOrigin-RevId: 183859414
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index 0b27d13..a3835d8 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -45,8 +45,8 @@
 import com.google.devtools.build.lib.analysis.config.ConfigurationResolver;
 import com.google.devtools.build.lib.analysis.config.FragmentClassSet;
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
 import com.google.devtools.build.lib.analysis.constraints.TopLevelConstraintSemantics;
 import com.google.devtools.build.lib.analysis.test.CoverageReportActionFactory;
 import com.google.devtools.build.lib.analysis.test.CoverageReportActionFactory.CoverageReportActionsWrapper;
@@ -1092,7 +1092,8 @@
     return result;
   }
 
-  private Transition getTopLevelTransitionForTarget(Label label, ExtendedEventHandler handler) {
+  private ConfigurationTransition getTopLevelTransitionForTarget(Label label,
+      ExtendedEventHandler handler) {
     Rule rule;
     try {
       rule = skyframeExecutor
@@ -1114,7 +1115,7 @@
     if (factory == null) {
       return NoTransition.INSTANCE;
     }
-    Transition transition = factory.buildTransitionFor(rule);
+    ConfigurationTransition transition = factory.buildTransitionFor(rule);
     return (transition == null) ? NoTransition.INSTANCE : transition;
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java b/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java
index 318d4f5..5ed5883 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Dependency.java
@@ -16,7 +16,7 @@
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
 import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.packages.AspectDescriptor;
 import java.util.Map;
@@ -103,7 +103,7 @@
    * Creates a new {@link Dependency} with the given transition and aspects.
    */
   public static Dependency withTransitionAndAspects(
-      Label label, Transition transition, AspectCollection aspects) {
+      Label label, ConfigurationTransition transition, AspectCollection aspects) {
     return new ConfigurationTransitionDependency(label, transition, aspects);
   }
 
@@ -141,7 +141,7 @@
    *
    * @throws IllegalStateException if {@link #hasExplicitConfiguration} returns true.
    */
-  public abstract Transition getTransition();
+  public abstract ConfigurationTransition getTransition();
 
   /**
    * Returns the set of aspects which should be evaluated and combined with the configured target
@@ -179,7 +179,7 @@
     }
 
     @Override
-    public Transition getTransition() {
+    public ConfigurationTransition getTransition() {
       throw new IllegalStateException(
           "This dependency has an explicit configuration, not a transition.");
     }
@@ -243,7 +243,7 @@
     }
 
     @Override
-    public Transition getTransition() {
+    public ConfigurationTransition getTransition() {
       throw new IllegalStateException(
           "This dependency has an explicit configuration, not a transition.");
     }
@@ -287,11 +287,11 @@
    * Implementation of a dependency with a given configuration transition.
    */
   private static final class ConfigurationTransitionDependency extends Dependency {
-    private final Transition transition;
+    private final ConfigurationTransition transition;
     private final AspectCollection aspects;
 
     public ConfigurationTransitionDependency(
-        Label label, Transition transition, AspectCollection aspects) {
+        Label label, ConfigurationTransition transition, AspectCollection aspects) {
       super(label);
       this.transition = Preconditions.checkNotNull(transition);
       this.aspects = Preconditions.checkNotNull(aspects);
@@ -309,7 +309,7 @@
     }
 
     @Override
-    public Transition getTransition() {
+    public ConfigurationTransition getTransition() {
       return transition;
     }
 
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 9290168..4b44be7 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
@@ -26,10 +26,10 @@
 import com.google.devtools.build.lib.analysis.config.HostTransition;
 import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException;
 import com.google.devtools.build.lib.analysis.config.TransitionResolver;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.NullTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
 import com.google.devtools.build.lib.events.Location;
@@ -718,7 +718,7 @@
       if (toTarget == null) {
         return; // Skip this round: we still need to Skyframe-evaluate the dep's target.
       }
-      Transition transition = TransitionResolver.evaluateTransition(
+      ConfigurationTransition transition = TransitionResolver.evaluateTransition(
           ruleConfig, rule, attributeAndOwner.attribute, toTarget, attributeMap);
       outgoingEdges.put(
           attributeAndOwner.attribute,
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 1fac30b..ff93d76 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
@@ -47,10 +47,10 @@
 import com.google.devtools.build.lib.analysis.config.BuildOptions;
 import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
 import com.google.devtools.build.lib.analysis.config.FragmentCollection;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
 import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
 import com.google.devtools.build.lib.analysis.fileset.FilesetProvider;
 import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
@@ -399,13 +399,13 @@
    * Returns a configuration fragment for this this target.
    */
   @Nullable
-  public <T extends Fragment> T getFragment(Class<T> fragment, Transition transition) {
+  public <T extends Fragment> T getFragment(Class<T> fragment, ConfigurationTransition transition) {
     return getFragment(fragment, fragment.getSimpleName(), "", transition);
   }
 
   @Nullable
   protected <T extends Fragment> T getFragment(Class<T> fragment, String name,
-      String additionalErrorMessage, Transition transition) {
+      String additionalErrorMessage, ConfigurationTransition transition) {
     // TODO(bazel-team): The fragments can also be accessed directly through BuildConfiguration.
     // Can we lock that down somehow?
     Preconditions.checkArgument(isLegalFragment(fragment, transition),
@@ -423,7 +423,7 @@
   }
 
   @Nullable
-  public Fragment getSkylarkFragment(String name, Transition transition) {
+  public Fragment getSkylarkFragment(String name, ConfigurationTransition transition) {
     Class<? extends Fragment> fragmentClass =
         getConfiguration(transition).getSkylarkFragmentByName(name);
     if (fragmentClass == null) {
@@ -437,12 +437,12 @@
         transition);
   }
 
-  public ImmutableCollection<String> getSkylarkFragmentNames(Transition transition) {
+  public ImmutableCollection<String> getSkylarkFragmentNames(ConfigurationTransition transition) {
     return getConfiguration(transition).getSkylarkFragmentNames();
   }
 
   public <T extends Fragment> boolean isLegalFragment(
-      Class<T> fragment, Transition transition) {
+      Class<T> fragment, ConfigurationTransition transition) {
     return fragment == universalFragment
         || fragment == PlatformConfiguration.class
         || configurationFragmentPolicy.isLegalConfigurationFragment(fragment, transition);
@@ -453,7 +453,7 @@
     return isLegalFragment(fragment, NoTransition.INSTANCE);
   }
 
-  protected BuildConfiguration getConfiguration(Transition transition) {
+  protected BuildConfiguration getConfiguration(ConfigurationTransition transition) {
     return transition.isHostTransition() ? hostConfiguration : getConfiguration();
   }
 
@@ -1066,7 +1066,7 @@
       throw new IllegalStateException(getRuleClassNameForLogging() + " attribute " + attributeName
         + " is not a label type attribute");
     }
-    Transition transition = attributeDefinition.getConfigurationTransition();
+    ConfigurationTransition transition = attributeDefinition.getConfigurationTransition();
     if (mode == Mode.HOST) {
       if (!(transition instanceof PatchTransition)) {
         throw new IllegalStateException(getRule().getLocation() + ": "
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingRuleTransitionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingRuleTransitionFactory.java
index f5f489f..8f6d2b5 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingRuleTransitionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingRuleTransitionFactory.java
@@ -16,8 +16,8 @@
 package com.google.devtools.build.lib.analysis.config;
 
 import com.google.devtools.build.lib.analysis.config.transitions.ComposingPatchTransition;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
 import com.google.devtools.build.lib.packages.Rule;
 import com.google.devtools.build.lib.packages.RuleTransitionFactory;
 
@@ -39,7 +39,7 @@
   }
 
   @Override
-  public Transition buildTransitionFor(Rule rule) {
+  public ConfigurationTransition buildTransitionFor(Rule rule) {
     PatchTransition transition1 = (PatchTransition) rtf1.buildTransitionFor(rule);
     PatchTransition transition2 = (PatchTransition) rtf2.buildTransitionFor(rule);
 
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
index 57cf02b..fd0a933 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationResolver.java
@@ -26,10 +26,10 @@
 import com.google.common.collect.Sets;
 import com.google.devtools.build.lib.analysis.Dependency;
 import com.google.devtools.build.lib.analysis.TargetAndConfiguration;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.concurrent.ThreadSafety;
 import com.google.devtools.build.lib.events.Event;
@@ -182,7 +182,7 @@
       }
 
       boolean sameFragments = depFragments.equals(ctgFragments.fragmentClasses());
-      Transition transition = dep.getTransition();
+      ConfigurationTransition transition = dep.getTransition();
 
       if (sameFragments) {
         if (transition == NoTransition.INSTANCE) {
@@ -299,11 +299,11 @@
     // Treat this as immutable. The only reason this isn't an ImmutableSet is because it
     // gets bound to a NestedSet.toSet() reference, which returns a Set interface.
     final Set<Class<? extends BuildConfiguration.Fragment>> fragments;
-    final Transition transition;
+    final ConfigurationTransition transition;
     private final int hashCode;
 
     FragmentsAndTransition(Set<Class<? extends BuildConfiguration.Fragment>> fragments,
-        Transition transition) {
+        ConfigurationTransition transition) {
       this.fragments = fragments;
       this.transition = transition;
       hashCode = Objects.hash(this.fragments, this.transition);
@@ -415,7 +415,7 @@
    */
   @VisibleForTesting
   public static List<BuildOptions> applyTransition(BuildOptions fromOptions,
-      Transition transition,
+      ConfigurationTransition transition,
       Iterable<Class<? extends BuildConfiguration.Fragment>> requiredFragments,
       RuleClassProvider ruleClassProvider, boolean trimResults) {
     List<BuildOptions> result;
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java
index d11e3bd..bd053f4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java
@@ -16,7 +16,7 @@
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableCollection;
 import com.google.devtools.build.lib.analysis.RuleContext;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
@@ -39,9 +39,9 @@
     + "(see <a href=\"../rules.md#fragments\">here</a>).")
 public class FragmentCollection implements ClassObject {
   private final RuleContext ruleContext;
-  private final Transition transition;
+  private final ConfigurationTransition transition;
 
-  public FragmentCollection(RuleContext ruleContext, Transition transition) {
+  public FragmentCollection(RuleContext ruleContext, ConfigurationTransition transition) {
     this.ruleContext = ruleContext;
     this.transition = transition;
   }
@@ -70,7 +70,7 @@
     return String.format("'%s'", Joiner.on("', '").join(getFieldNames()));
   }
 
-  public static String getConfigurationName(Transition config) {
+  public static String getConfigurationName(ConfigurationTransition config) {
     return config.isHostTransition() ? "host" : "target";
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
index 6287e74..b78fceb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/TransitionResolver.java
@@ -18,11 +18,11 @@
 import com.google.common.base.Preconditions;
 import com.google.devtools.build.lib.analysis.TargetAndConfiguration;
 import com.google.devtools.build.lib.analysis.config.transitions.ComposingSplitTransition;
+import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.NullTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition;
 import com.google.devtools.build.lib.analysis.config.transitions.SplitTransition;
-import com.google.devtools.build.lib.analysis.config.transitions.Transition;
 import com.google.devtools.build.lib.packages.Attribute;
 import com.google.devtools.build.lib.packages.ConfiguredAttributeMapper;
 import com.google.devtools.build.lib.packages.InputFile;
@@ -32,7 +32,7 @@
 import com.google.devtools.build.lib.packages.Target;
 
 /**
- * Tool for evaluating which {@link Transition}(s) should be applied to given targets.
+ * Tool for evaluating which {@link ConfigurationTransition}(s) should be applied to given targets.
  *
  * <p>For the work of turning these transitions into actual configurations, see {@link
  * ConfigurationResolver}.
@@ -55,8 +55,12 @@
    * @return the child's configuration, expressed as a diff from the parent's configuration. This
    *     is either a {@link PatchTransition} or {@link SplitTransition}.
    */
-  public static Transition evaluateTransition(BuildConfiguration fromConfig, final Rule fromRule,
-      final Attribute attribute, final Target toTarget, ConfiguredAttributeMapper attributeMap) {
+  public static ConfigurationTransition evaluateTransition(
+      BuildConfiguration fromConfig,
+      final Rule fromRule,
+      final Attribute attribute,
+      final Target toTarget,
+      ConfiguredAttributeMapper attributeMap) {
 
     // I. Input files and package groups have no configurations. We don't want to duplicate them.
     if (usesNullConfiguration(toTarget)) {
@@ -89,13 +93,14 @@
     // The current transition to apply. When multiple transitions are requested, this is a
     // ComposingSplitTransition, which encapsulates them into a single object so calling code
     // doesn't need special logic for combinations.
-    Transition currentTransition = NoTransition.INSTANCE;
+    ConfigurationTransition currentTransition = NoTransition.INSTANCE;
 
     // Apply the parent rule's outgoing transition if it has one.
     RuleTransitionFactory transitionFactory =
         fromRule.getRuleClassObject().getOutgoingTransitionFactory();
     if (transitionFactory != null) {
-      Transition transition = transitionFactory.buildTransitionFor(toTarget.getAssociatedRule());
+      ConfigurationTransition transition =
+          transitionFactory.buildTransitionFor(toTarget.getAssociatedRule());
       if (transition != null) {
         currentTransition = composeTransitions(currentTransition, transition);
       }
@@ -121,12 +126,13 @@
    * Same as evaluateTransition except does not check for transitions coming from parents and
    * enables support for rule-triggered top-level configuration hooks.
    */
-  public static Transition evaluateTopLevelTransition(TargetAndConfiguration targetAndConfig) {
+  public static ConfigurationTransition evaluateTopLevelTransition(
+      TargetAndConfiguration targetAndConfig) {
     Target target = targetAndConfig.getTarget();
     BuildConfiguration fromConfig = targetAndConfig.getConfiguration();
 
     // Top-level transitions (chosen by configuration fragments):
-    Transition topLevelTransition = fromConfig.topLevelConfigurationHook(target);
+    ConfigurationTransition topLevelTransition = fromConfig.topLevelConfigurationHook(target);
     if (topLevelTransition == null) {
       topLevelTransition = NoTransition.INSTANCE;
     }
@@ -150,7 +156,8 @@
    * Composes two transitions together efficiently.
    */
   @VisibleForTesting
-  public static Transition composeTransitions(Transition transition1, Transition transition2) {
+  public static ConfigurationTransition composeTransitions(ConfigurationTransition transition1,
+      ConfigurationTransition transition2) {
     if (isFinal(transition1) || transition2 == NoTransition.INSTANCE) {
       return transition1;
     } else if (isFinal(transition2) || transition1 == NoTransition.INSTANCE) {
@@ -168,7 +175,7 @@
    * Returns true if once the given transition is applied to a dep no followup transitions should
    * be composed after it.
    */
-  private static boolean isFinal(Transition transition) {
+  private static boolean isFinal(ConfigurationTransition transition) {
     return (transition == NullTransition.INSTANCE
         || transition == HostTransition.INSTANCE);
   }
@@ -176,7 +183,8 @@
   /**
    * Applies the given split and composes it after an existing transition.
    */
-  private static Transition split(Transition currentTransition, SplitTransition split) {
+  private static ConfigurationTransition split(ConfigurationTransition currentTransition,
+      SplitTransition split) {
     Preconditions.checkState(currentTransition != NullTransition.INSTANCE,
         "cannot apply splits after null transitions (null transitions are expected to be final)");
     Preconditions.checkState(currentTransition != HostTransition.INSTANCE,
@@ -190,7 +198,8 @@
    * @param currentTransition a pre-existing transition to be composed with
    * @param toTarget rule to examine for transitions
    */
-  private static Transition applyRuleTransition(Transition currentTransition, Target toTarget) {
+  private static ConfigurationTransition applyRuleTransition(
+      ConfigurationTransition currentTransition, Target toTarget) {
     if (isFinal(currentTransition)) {
       return currentTransition;
     }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java
index d36968c..1bcbebc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ComposingSplitTransition.java
@@ -34,14 +34,15 @@
  * captures all possible combinations.
  */
 public class ComposingSplitTransition implements SplitTransition {
-  private Transition transition1;
-  private Transition transition2;
+  private ConfigurationTransition transition1;
+  private ConfigurationTransition transition2;
 
   /**
    * Creates a {@link ComposingSplitTransition} that applies the sequence:
    * {@code fromOptions -> transition1 -> transition2 -> toOptions  }.
    */
-  public ComposingSplitTransition(Transition transition1, Transition transition2) {
+  public ComposingSplitTransition(ConfigurationTransition transition1,
+      ConfigurationTransition transition2) {
     this.transition1 = verifySupported(transition1);
     this.transition2 = verifySupported(transition2);
   }
@@ -59,7 +60,7 @@
    * Verifies support for the given transition type. Throws an {@link IllegalArgumentException} if
    * unsupported.
    */
-  private Transition verifySupported(Transition transition) {
+  private ConfigurationTransition verifySupported(ConfigurationTransition transition) {
     Preconditions.checkArgument(transition instanceof PatchTransition
         || transition instanceof SplitTransition);
     return transition;
@@ -69,7 +70,7 @@
    * Applies the given transition over the given {@link BuildOptions}, returns the result.
    */
   // TODO(gregce): move this somewhere more general. This isn't intrinsic to composed splits.
-  static List<BuildOptions> apply(BuildOptions fromOptions, Transition transition) {
+  static List<BuildOptions> apply(BuildOptions fromOptions, ConfigurationTransition transition) {
     if (transition instanceof PatchTransition) {
       return ImmutableList.<BuildOptions>of(((PatchTransition) transition).apply(fromOptions));
     } else if (transition instanceof SplitTransition) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/Transition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ConfigurationTransition.java
similarity index 95%
rename from src/main/java/com/google/devtools/build/lib/analysis/config/transitions/Transition.java
rename to src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ConfigurationTransition.java
index cf647fd..7fb3a66 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/Transition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/ConfigurationTransition.java
@@ -17,7 +17,7 @@
 /**
  * A configuration transition.
  */
-public interface Transition {
+public interface ConfigurationTransition {
   /**
    * Does this transition switch to a "host" configuration?
    */
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/PatchTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/PatchTransition.java
index 3fd096e..451148e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/PatchTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/PatchTransition.java
@@ -48,7 +48,7 @@
  * {@link com.google.devtools.build.lib.analysis.config.BuildOptions} doesn't currently
  * enforce immutability. So care must be taken not to modify the wrong instance.
  */
-public interface PatchTransition extends Transition {
+public interface PatchTransition extends ConfigurationTransition {
 
   /**
    * Applies the transition.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java
index dd1cea1..05ecfaa 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/transitions/SplitTransition.java
@@ -25,7 +25,7 @@
  */
 @ThreadSafety.Immutable
 @FunctionalInterface
-public interface SplitTransition extends Transition {
+public interface SplitTransition extends ConfigurationTransition {
   /**
    * Return the list of {@code BuildOptions} after splitting; empty if not applicable.
    */