Parse exec properties attribute into exec group properties for RuleContexts.
Exec property keys can take two forms: "property" and "exec_group_name.property"
Note - this does not do equivalent parsing for SkylarkRepositoryContext's inherited exec_properties attribute or PlatformInfo's declared exec_properties attribute. Since neither of those have the ability to declare exec_groups, it shouldn't be necessary. This could potentially lead to user confusion, so something to document well.
PiperOrigin-RevId: 312156395
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
index b41cfb2..6812cfa 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java
@@ -31,6 +31,7 @@
import com.google.devtools.build.lib.analysis.DuplicateException;
import com.google.devtools.build.lib.analysis.InconsistentAspectOrderException;
import com.google.devtools.build.lib.analysis.ResolvedToolchainContext;
+import com.google.devtools.build.lib.analysis.RuleContext.InvalidExecGroupException;
import com.google.devtools.build.lib.analysis.TargetAndConfiguration;
import com.google.devtools.build.lib.analysis.ToolchainCollection;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
@@ -644,6 +645,8 @@
return null;
} catch (ActionConflictException e) {
throw new AspectFunctionException(e);
+ } catch (InvalidExecGroupException e) {
+ throw new AspectFunctionException(e);
} finally {
CurrentRuleTracker.endConfiguredAspect();
}
@@ -694,6 +697,10 @@
super(e, Transience.PERSISTENT);
}
+ public AspectFunctionException(InvalidExecGroupException e) {
+ super(e, Transience.PERSISTENT);
+ }
+
public AspectFunctionException(ActionConflictException cause) {
super(cause, Transience.PERSISTENT);
}