fix forward for https://github.com/bazelbuild/bazel/commit/ceddfb1ece1f8ed7ff81558fa1751e6526df031b. Make sure the use the appropriate check for alias + feature flag so trimming does not get applied
PiperOrigin-RevId: 563185304
Change-Id: I6f1d3f0fb1a5c85c980faa196832f094ac4c9666
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java b/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java
index e3b2e15..3f8bbba 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/producers/TargetAndConfigurationProducer.java
@@ -466,9 +466,7 @@
transition = transitionFactory.create(transitionData);
}
- boolean isAlias = target.getAssociatedRule().getName().equals("alias");
-
- if (trimmingTransitionFactory != null && !isAlias) {
+ if (trimmingTransitionFactory != null) {
var trimmingTransition = trimmingTransitionFactory.create(transitionData);
if (transition != null) {
transition = ComposingTransition.of(transition, trimmingTransition);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java
index 3cdec35..27c190c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagTaggedTrimmingTransitionFactory.java
@@ -20,10 +20,12 @@
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
import com.google.common.collect.Ordering;
+import com.google.devtools.build.lib.analysis.AliasProvider;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.BuildOptionsView;
import com.google.devtools.build.lib.analysis.config.CoreOptions;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
+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.TransitionFactory;
import com.google.devtools.build.lib.cmdline.Label;
@@ -94,6 +96,12 @@
public PatchTransition create(RuleTransitionData ruleData) {
NonconfiguredAttributeMapper attrs = NonconfiguredAttributeMapper.of(ruleData.rule());
RuleClass ruleClass = ruleData.rule().getRuleClassObject();
+
+ if (AliasProvider.mayBeAlias(ruleData.rule())) {
+ // As a convenience, do not require transitive_config to be set for alias rule.
+ return NoTransition.INSTANCE;
+ }
+
if (ruleClass.getName().equals(ConfigRuleClasses.ConfigFeatureFlagRule.RULE_NAME)) {
return new ConfigFeatureFlagTaggedTrimmingTransition(
ImmutableSortedSet.of(ruleData.rule().getLabel()));