Skip to content

Commit

Permalink
Make isAutomaticExecGroup static and move it to the class ExecGroup
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 713286390
Change-Id: Ie92fb75a80adf9272a9da5274bfbefb657f99bc5
  • Loading branch information
katre authored and copybara-github committed Jan 8, 2025
1 parent eba2054 commit 60e0aa9
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import com.google.devtools.build.lib.packages.AspectDescriptor;
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.ExecGroup;
import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData;
import java.util.Collection;
import java.util.LinkedHashMap;
Expand Down Expand Up @@ -94,7 +95,7 @@ public final class AspectContext extends RuleContext {
public ImmutableSet<Label> getRequestedToolchainTypesLabels() {
if (targetUsesAutoExecGroups) {
return baseTargetToolchainContexts.contextMap().entrySet().stream()
.filter(e -> isAutomaticExecGroup(e.getKey()))
.filter(e -> ExecGroup.isAutomatic(e.getKey()))
.flatMap(e -> e.getValue().requestedToolchainTypeLabels().keySet().stream())
.collect(toImmutableSet());
} else {
Expand All @@ -118,7 +119,7 @@ public AspectBaseTargetResolvedToolchainContext.ToolchainAspectsProviders getToo
baseTargetToolchainContexts.contextMap().entrySet().stream()
.filter(
e ->
isAutomaticExecGroup(e.getKey())
ExecGroup.isAutomatic(e.getKey())
&& e.getValue().requestedToolchainTypeLabels().containsKey(toolchainType))
.findFirst()
.map(e -> e.getValue())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
import com.google.devtools.build.lib.packages.BuiltinProvider;
import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy;
import com.google.devtools.build.lib.packages.ConfiguredAttributeMapper;
import com.google.devtools.build.lib.packages.ExecGroup;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.OutputFile;
Expand Down Expand Up @@ -109,7 +110,6 @@
import net.starlark.java.eval.StarlarkSemantics;
import net.starlark.java.eval.StarlarkThread;
import net.starlark.java.eval.SymbolGenerator;
import net.starlark.java.syntax.Identifier;
import net.starlark.java.syntax.Location;

/**
Expand Down Expand Up @@ -1095,11 +1095,6 @@ private ResolvedToolchainContext getToolchainContext(String execGroup) {
return toolchainContexts == null ? null : toolchainContexts.getToolchainContext(execGroup);
}

/** Returns true if the given exec group is an automatic exec group. */
public boolean isAutomaticExecGroup(String execGroupName) {
return !Identifier.isValid(execGroupName) && !execGroupName.equals(DEFAULT_EXEC_GROUP_NAME);
}

@Nullable
private ResolvedToolchainContext getToolchainContextForToolchainType(Label toolchainType) {
ResolvedToolchainContext toolchainContext =
Expand All @@ -1113,7 +1108,7 @@ private ResolvedToolchainContext getToolchainContextForToolchainType(Label toolc
// type in its ResolvedToolchainContext (AEGs are created before toolchain context is resolved).
String aliasName =
toolchainContexts.getExecGroupNames().stream()
.filter(this::isAutomaticExecGroup)
.filter(ExecGroup::isAutomatic)
.filter(
name -> {
ResolvedToolchainContext context = toolchainContexts.getToolchainContext(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
import com.google.devtools.build.lib.packages.BuildSetting;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.BuiltinRestriction;
import com.google.devtools.build.lib.packages.ExecGroup;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.Info;
import com.google.devtools.build.lib.packages.OutputFile;
Expand Down Expand Up @@ -846,7 +847,7 @@ ImmutableSet<Label> getRequestedToolchainTypeLabelsFromAutoExecGroups() {
ruleContext.getToolchainContexts();

return toolchainContexts.getExecGroupNames().stream()
.filter(e -> ruleContext.isAutomaticExecGroup(e))
.filter(ExecGroup::isAutomatic)
.flatMap(
execGroupName ->
toolchainContexts
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/google/devtools/build/lib/packages/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib/cmdline",
"//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/starlarkbuildapi",
"//src/main/java/net/starlark/java/syntax",
"//third_party:auto_value",
"//third_party:guava",
"//third_party:jsr305",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import com.google.devtools.build.lib.starlarkbuildapi.ExecGroupApi;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import javax.annotation.Nullable;
import net.starlark.java.syntax.Identifier;

/**
* Resolves the appropriate toolchains for the given parameters.
Expand Down Expand Up @@ -63,6 +64,11 @@ public static Builder builder() {
.execCompatibleWith(ImmutableSet.of());
}

/** Returns true if the given exec group is an automatic exec group. */
public static boolean isAutomatic(String execGroupName) {
return !Identifier.isValid(execGroupName) && !execGroupName.equals(DEFAULT_EXEC_GROUP_NAME);
}

/** Returns the required toolchain types for this exec group. */
public ImmutableSet<ToolchainTypeRequirement> toolchainTypes() {
return ImmutableSet.copyOf(toolchainTypesMap().values());
Expand Down

0 comments on commit 60e0aa9

Please sign in to comment.