diff options
Diffstat (limited to 'src')
7 files changed, 39 insertions, 63 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java index 0ea36aa52a..4b32382a40 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java @@ -20,9 +20,6 @@ import static com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClass import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -542,13 +539,8 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { } @Override - public Label getLabel(String labelValue) { - return LABELS.getUnchecked(labelValue); - } - - @Override public Label getToolsLabel(String labelValue) { - return getLabel(toolsRepository + labelValue); + return Label.parseAbsoluteUnchecked(toolsRepository + labelValue); } @Override @@ -566,22 +558,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { } /** - * Used to make the label instances unique, so that we don't create a new - * instance for every rule. - */ - private static final LoadingCache<String, Label> LABELS = CacheBuilder.newBuilder().build( - new CacheLoader<String, Label>() { - @Override - public Label load(String from) { - try { - return Label.parseAbsolute(from); - } catch (LabelSyntaxException e) { - throw new IllegalArgumentException(from, e); - } - } - }); - - /** * Default content that should be added at the beginning of the WORKSPACE file. */ private final String defaultWorkspaceFilePrefix; diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java index bd76287fd1..6c4705b749 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java @@ -23,14 +23,8 @@ import javax.annotation.Nullable; */ public interface RuleDefinitionEnvironment { /** - * Parses the given string as a label and returns the label, by calling {@link - * Label#parseAbsolute}. Throws a {@link IllegalArgumentException} if the parsing fails. - */ - Label getLabel(String labelValue); - - /** - * Prepends the tools repository path to the given string and parses the result - * using {@link RuleDefinitionEnvironment#getLabel} + * Prepends the tools repository path to the given string and parses the result using {@link + * Label#parseAbsoluteUnchecked}. */ Label getToolsLabel(String labelValue); diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java index 2f025439bb..a026a0a1b3 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java @@ -280,7 +280,7 @@ public class BazelCppRuleClasses { // thus a dependency of def_parser. || label.startsWith(toolsRepository + "//tools/cpp") ? null - : env.getLabel(defParserLabel); + : Label.parseAbsoluteUnchecked(defParserLabel); } })); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java index dbda63a19f..776a7806c0 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java @@ -26,6 +26,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.analysis.config.HostTransition; import com.google.devtools.build.lib.bazel.rules.java.BazelJavaRuleClasses.BaseJavaBinaryRule; +import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; import com.google.devtools.build.lib.packages.TriState; @@ -55,10 +56,11 @@ public final class BazelJavaTestRule implements RuleDefinition { .setImplicitOutputsFunction(BazelJavaRuleClasses.JAVA_BINARY_IMPLICIT_OUTPUTS) // Proguard can be run over java_test targets using the --java_optimization_mode flag. // Primarily this is intended to help test changes to Proguard. - .add(attr(":proguard", LABEL) - .cfg(HostTransition.INSTANCE) - .value(JavaSemantics.PROGUARD) - .exec()) + .add( + attr(":proguard", LABEL) + .cfg(HostTransition.INSTANCE) + .value(JavaSemantics.PROGUARD) + .exec()) .add(attr(":extra_proguard_specs", LABEL_LIST).value(JavaSemantics.EXTRA_PROGUARD_SPECS)) .override(attr("stamp", TRISTATE).value(TriState.NO)) .override(attr("use_testrunner", BOOLEAN).value(true)) @@ -66,14 +68,12 @@ public final class BazelJavaTestRule implements RuleDefinition { // Input files for test actions collecting code coverage .add( attr("$lcov_merger", LABEL) - .value(env.getLabel( - "@bazel_tools//tools/test/LcovMerger/java/com/google/devtools/lcovmerger:Main" - ))) + .value( + Label.parseAbsoluteUnchecked( + "@bazel_tools//tools/test/LcovMerger/java/com/google/devtools/lcovmerger:Main"))) .add( attr("$jacocorunner", LABEL) - .value( - env.getLabel( - "@bazel_tools//tools/jdk:JacocoCoverage"))) + .value(Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:JacocoCoverage"))) /* <!-- #BLAZE_RULE(java_test).ATTRIBUTE(test_class) --> The Java class to be loaded by the test runner.<br/> <p> diff --git a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurableAttributesTest.java b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurableAttributesTest.java index 3a9a8dcd73..6d4ba5f206 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/ConfigurableAttributesTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/ConfigurableAttributesTest.java @@ -142,13 +142,14 @@ public class ConfigurableAttributesTest extends BuildViewTestCase { .allowedValues(new Attribute.AllowedValueSet("one", "two"))); private static final MockRule RULE_WITH_LABEL_DEFAULT = - () -> MockRule.define( - "rule_with_label_default", - (builder, env) -> - builder.add( - attr("dep", BuildType.LABEL) - .value(env.getLabel("//foo:default")) - .allowedFileTypes(FileTypeSet.ANY_FILE))); + () -> + MockRule.define( + "rule_with_label_default", + (builder, env) -> + builder.add( + attr("dep", BuildType.LABEL) + .value(Label.parseAbsoluteUnchecked("//foo:default")) + .allowedFileTypes(FileTypeSet.ANY_FILE))); @Override protected ConfiguredRuleClassProvider getRuleClassProvider() { diff --git a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java index 4ef326149f..0aa30d4273 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java @@ -58,8 +58,8 @@ public class ConstraintsTest extends AbstractConstraintsTest { public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) { return builder .setUndocumented() - .compatibleWith(env.getLabel("//buildenv/rule_class_compat:b")) - .restrictedTo(env.getLabel("//buildenv/rule_class_restrict:d")) + .compatibleWith(Label.parseAbsoluteUnchecked("//buildenv/rule_class_compat:b")) + .restrictedTo(Label.parseAbsoluteUnchecked("//buildenv/rule_class_restrict:d")) .build(); } @@ -77,15 +77,19 @@ public class ConstraintsTest extends AbstractConstraintsTest { * Dummy rule class for testing rule class defaults. This class applies invalid defaults. Note * that the specified environments must be independently created. */ - private static final MockRule BAD_RULE_CLASS_DEFAULT_RULE = () -> MockRule.define( - "bad_rule_class_default", - (builder, env) -> - builder - .setUndocumented() - // These defaults are invalid since compatibleWith and restrictedTo can't mix - // environments from the same group. - .compatibleWith(env.getLabel("//buildenv/rule_class_compat:a")) - .restrictedTo(env.getLabel("//buildenv/rule_class_compat:b"))); + private static final MockRule BAD_RULE_CLASS_DEFAULT_RULE = + () -> + MockRule.define( + "bad_rule_class_default", + (builder, env) -> + builder + .setUndocumented() + // These defaults are invalid since compatibleWith and restrictedTo can't mix + // environments from the same group. + .compatibleWith( + Label.parseAbsoluteUnchecked("//buildenv/rule_class_compat:a")) + .restrictedTo( + Label.parseAbsoluteUnchecked("//buildenv/rule_class_compat:b"))); private static final MockRule RULE_WITH_IMPLICIT_AND_LATEBOUND_DEFAULTS = () -> diff --git a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java index 6e4ce84399..63fa86cb40 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java @@ -21,6 +21,7 @@ import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.analysis.util.MockRule; +import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; @@ -34,7 +35,7 @@ public final class WhitelistDummyRule { (builder, env) -> builder.add( Whitelist.getAttributeFromWhitelistName("dummy") - .value(env.getLabel("//whitelist:whitelist")))); + .value(Label.parseAbsoluteUnchecked("//whitelist:whitelist")))); /** Has to be public to make factory initialization logic happy. **/ public static class RuleFactory implements RuleConfiguredTargetFactory { |