diff options
author | 2017-01-30 17:18:19 +0000 | |
---|---|---|
committer | 2017-01-30 17:37:18 +0000 | |
commit | b7e7ea4da27f989f7670d6087a25f14312ac2dd7 (patch) | |
tree | ff95684c0d42ffc72d91fbd32c7c30e7b5734f66 /src/main/java/com/google/devtools | |
parent | 69ab1a91ef0d6f5424ce01eaf8acc15fa429f4bb (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')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/config/ComposingSplitTransition.java | 10 |
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", |