Add safety checks for configurable attributes in trimming mode.
Trimming does not support configurable attributes, so these checks prevent
rules with configurable attributes from silently being evaluated incorrectly.
Progress on #6524.
PiperOrigin-RevId: 244959981
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index 1e36cb7..bc0e621 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -608,6 +608,15 @@
.collect(Collectors.toList());
if (configLabels.isEmpty()) {
return NO_CONFIG_CONDITIONS;
+ } else if (ctgValue.getConfiguration().trimConfigurationsRetroactively()) {
+ String message =
+ target.getLabel()
+ + " has configurable attributes, but these are not supported in retroactive trimming "
+ + "mode.";
+ env.getListener().handle(Event.error(TargetUtils.getLocationMaybe(target), message));
+ throw new DependencyEvaluationException(
+ new ConfiguredValueCreationException(
+ message, ctgValue.getLabel(), ctgValue.getConfiguration()));
}
// Collect the actual deps without a configuration transition (since by definition config