aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleDefinitionEnvironment.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/cpp/BazelCppRuleClasses.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaTestRule.java20
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/ConfigurableAttributesTest.java15
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/constraints/ConstraintsTest.java26
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/whitelisting/WhitelistDummyRule.java3
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 {