From 01c1a8b711c449b3f9880c1305d22777e6466995 Mon Sep 17 00:00:00 2001 From: John Cater Date: Mon, 14 Feb 2022 14:24:41 -0500 Subject: [PATCH] Update starlark apis that consume toolchain types to use ToolchainTypeRequirement. Part of Optional Toolchains (#14726). --- .../starlark/StarlarkRuleClassFunctions.java | 91 +++++++++----- .../build/lib/packages/ExecGroup.java | 10 -- .../StarlarkRuleFunctionsApi.java | 24 ++-- .../devtools/build/lib/analysis/testing/BUILD | 1 + .../testing/StarlarkDefinedAspectSubject.java | 86 +++++++++++++ .../StarlarkRuleClassFunctionsTest.java | 115 +++++++++++++----- .../devtools/build/lib/starlark/util/BUILD | 1 + .../util/BazelEvaluationTestCase.java | 2 + 8 files changed, 250 insertions(+), 80 deletions(-) create mode 100644 src/test/java/com/google/devtools/build/lib/analysis/testing/StarlarkDefinedAspectSubject.java diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java index 01721f25218f17..85ca3a92763ae2 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.analysis.starlark; -import static com.google.common.collect.ImmutableSet.toImmutableSet; import static com.google.devtools.build.lib.analysis.BaseRuleClasses.RUN_UNDER; import static com.google.devtools.build.lib.analysis.BaseRuleClasses.TEST_RUNNER_EXEC_GROUP; import static com.google.devtools.build.lib.analysis.BaseRuleClasses.TIMEOUT_DEFAULT; @@ -102,8 +101,10 @@ import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.util.Pair; import com.google.errorprone.annotations.FormatMethod; +import java.util.HashSet; import java.util.Map; import java.util.Objects; +import java.util.Set; import javax.annotation.Nullable; import net.starlark.java.eval.Debug; import net.starlark.java.eval.Dict; @@ -401,7 +402,7 @@ public StarlarkCallable rule( : Label.createUnvalidated(PackageIdentifier.EMPTY_PACKAGE_ID, "dummy_label"), bzlModule != null ? bzlModule.bzlTransitiveDigest() : new byte[0]); - builder.addRequiredToolchains(parseToolchains(toolchains, thread)); + builder.addToolchainTypes(parseToolchainTypes(toolchains, thread)); if (useToolchainTransition) { builder.useToolchainTransition(ToolchainTransitionMode.ENABLED); } @@ -559,41 +560,21 @@ private static void checkAttributeName(String name) throws EvalException { return attributes.build(); } - /** - * Parses a sequence of label strings with a repo mapping. - * - * @param inputs sequence of input strings - * @param thread repository mapping - * @param adjective describes the purpose of the label; used for errors - * @throws EvalException if the label can't be parsed - */ - private static ImmutableList