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.
*/