From c19284e3e8db5ed57097ed908c76dc902392c7ee Mon Sep 17 00:00:00 2001 From: janakr Date: Wed, 20 Jun 2018 15:22:33 -0700 Subject: Remove all uses of RuleDefinitionEnvironment#getLabel, replacing them with Label.parseAbsoluteUnchecked. Label already interns all labels, so the additional interning being done in every ConfiguredRuleClass.Builder was pointless memory and CPU. Keeping the RuleDefinitionEnvironment around makes things harder to serialize. Done using IntelliJ structural replace and then a super-painful adding of imports to every file that didn't compile (have to learn a better way to do this). PiperOrigin-RevId: 201427027 --- .../lib/analysis/ConfigurableAttributesTest.java | 15 +++++++------ .../lib/analysis/constraints/ConstraintsTest.java | 26 +++++++++++++--------- .../analysis/whitelisting/WhitelistDummyRule.java | 3 ++- 3 files changed, 25 insertions(+), 19 deletions(-) (limited to 'src/test/java/com/google/devtools/build') 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 { -- cgit v1.2.3