aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2017-01-30 17:18:19 +0000
committerGravatar Yun Peng <pcloudy@google.com>2017-01-30 17:37:18 +0000
commitb7e7ea4da27f989f7670d6087a25f14312ac2dd7 (patch)
treeff95684c0d42ffc72d91fbd32c7c30e7b5734f66 /src/main/java/com/google/devtools/build
parent69ab1a91ef0d6f5424ce01eaf8acc15fa429f4bb (diff)
Split transitions that return an empty list of options do not suppress dynamic ruleclass
transitions. -- PiperOrigin-RevId: 146000375 MOS_MIGRATED_REVID=146000375
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java
index c4287d8ea9..8a33e233d4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.analysis.config;
+import com.google.common.base.Verify;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
import com.google.devtools.build.lib.packages.Attribute.SplitTransition;
@@ -50,7 +51,14 @@ public class ComposingSplitTransition implements SplitTransition<BuildOptions> {
} else if (transition instanceof PatchTransition) {
return ImmutableList.<BuildOptions>of(((PatchTransition) transition).apply(patchedOptions));
} else if (transition instanceof SplitTransition) {
- return ((SplitTransition<BuildOptions>) transition).split(patchedOptions);
+ SplitTransition split = (SplitTransition<BuildOptions>) transition;
+ List<BuildOptions> splitOptions = split.split(patchedOptions);
+ if (splitOptions.isEmpty()) {
+ Verify.verify(split.defaultsToSelf());
+ return ImmutableList.of(patchedOptions);
+ } else {
+ return splitOptions;
+ }
} else {
throw new IllegalStateException(
String.format("Unsupported composite transition type: %s",