Create UnloadedToolchainContexts for exec groups and make exec_group-related toolchains a dependency of their targets. Use a new helper class ToolchainCollection to handle the default/unnamed execution group.
PiperOrigin-RevId: 305695378
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 1ddd460..728c2b4 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
@@ -32,6 +32,7 @@
import com.google.devtools.build.lib.analysis.DuplicateException;
import com.google.devtools.build.lib.analysis.ResolvedToolchainContext;
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;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
@@ -420,7 +421,11 @@
originalTargetAndAspectConfiguration,
aspectPath,
configConditions,
- unloadedToolchainContext,
+ unloadedToolchainContext == null
+ ? null
+ : new ToolchainCollection.Builder<>()
+ .addDefaultContext(unloadedToolchainContext)
+ .build(),
ruleClassProvider,
view.getHostConfiguration(originalTargetAndAspectConfiguration.getConfiguration()),
transitivePackagesForPackageRootResolution,