aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-07-05 07:23:31 -0400
committerGravatar John Cater <jcater@google.com>2017-07-05 10:58:56 -0400
commitf6a7e5a39ee5669c0fdfce93032cab45d6c89358 (patch)
tree9905a5e85f19a94eb4cd0082d6a146d9e06a0c3b /src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
parent2843eadf4c1d9175c60d32ffd2cba2100256c1fd (diff)
Use the same data structure for native and Skylark providers.
The memory cost of adding Skylark provider is now the same as native. Skylark providers (declared and legacy) benefit from the same shape-sharing optimization as native providers. RELNOTES: None. PiperOrigin-RevId: 160944263
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java33
1 files changed, 2 insertions, 31 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 7f8a72f54c..ac5b483a22 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
@@ -337,16 +337,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
}
/**
- * Adds a mapping that determines which keys in structs returned by skylark rules should be
- * interpreted as native TransitiveInfoProvider instances of type (map value).
- */
- public Builder registerSkylarkProvider(
- String name, Class<? extends TransitiveInfoProvider> provider) {
- this.registeredSkylarkProviders.put(name, provider);
- return this;
- }
-
- /**
* Do not use - this only exists for backwards compatibility! Platform regexps are part of a
* legacy mechanism - {@code vardef} - that is not exposed in Bazel.
*
@@ -442,8 +432,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
universalFragment,
prerequisiteValidator,
skylarkAccessibleTopLevels.build(),
- skylarkModules.build(),
- registeredSkylarkProviders.build());
+ skylarkModules.build());
}
@Override
@@ -551,9 +540,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
private final Environment.Frame globals;
- private final ImmutableBiMap<String, Class<? extends TransitiveInfoProvider>>
- registeredSkylarkProviders;
-
private ConfiguredRuleClassProvider(
String productName,
Label preludeLabel,
@@ -571,8 +557,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
Class<? extends BuildConfiguration.Fragment> universalFragment,
PrerequisiteValidator prerequisiteValidator,
ImmutableMap<String, Object> skylarkAccessibleJavaClasses,
- ImmutableList<Class<?>> skylarkModules,
- ImmutableBiMap<String, Class<? extends TransitiveInfoProvider>> registeredSkylarkProviders) {
+ ImmutableList<Class<?>> skylarkModules) {
this.productName = productName;
this.preludeLabel = preludeLabel;
this.runfilesPrefix = runfilesPrefix;
@@ -589,7 +574,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
this.universalFragment = universalFragment;
this.prerequisiteValidator = prerequisiteValidator;
this.globals = createGlobals(skylarkAccessibleJavaClasses, skylarkModules);
- this.registeredSkylarkProviders = registeredSkylarkProviders;
}
public String getProductName() {
@@ -689,19 +673,6 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
}
/**
- * Returns a map that indicates which keys in structs returned by skylark rules should be
- * interpreted as native TransitiveInfoProvider instances of type (map value).
- *
- * <p>That is, if this map contains "dummy" -> DummyProvider.class, a "dummy" entry in a skylark
- * rule implementation's returned struct will be exported from that ConfiguredTarget as a
- * DummyProvider.
- */
- public ImmutableBiMap<String, Class<? extends TransitiveInfoProvider>>
- getRegisteredSkylarkProviders() {
- return this.registeredSkylarkProviders;
- }
-
- /**
* Creates a BuildOptions class for the given options taken from an optionsProvider.
*/
public BuildOptions createBuildOptions(OptionsClassProvider optionsProvider) {