aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java
index 993b812f95..85e65940fd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java
@@ -19,6 +19,8 @@ import com.google.devtools.build.lib.analysis.config.RunUnder;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.Rule;
+import com.google.devtools.build.lib.packages.SkylarkClassObject;
+import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor;
import com.google.devtools.build.lib.util.Preconditions;
import javax.annotation.Nullable;
@@ -48,7 +50,8 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
RuleConfiguredTarget(
RuleContext ruleContext,
TransitiveInfoProviderMap providers,
- SkylarkProviders skylarkProviders) {
+ ImmutableMap<String, Object> legacySkylarkProviders,
+ ImmutableMap<SkylarkClassObjectConstructor.Key, SkylarkClassObject> skylarkProviders) {
super(ruleContext);
// We don't use ImmutableMap.Builder here to allow augmenting the initial list of 'default'
// providers by passing them in.
@@ -59,9 +62,11 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
Preconditions.checkState(providerBuilder.contains(FilesToRunProvider.class));
// Initialize every SkylarkApiProvider
- if (!skylarkProviders.isEmpty()) {
- skylarkProviders.init(this);
- providerBuilder.add(skylarkProviders);
+ if (!legacySkylarkProviders.isEmpty() || !skylarkProviders.isEmpty()) {
+ SkylarkProviders allSkylarkProviders = new SkylarkProviders(legacySkylarkProviders,
+ skylarkProviders);
+ allSkylarkProviders.init(this);
+ providerBuilder.add(allSkylarkProviders);
}
this.providers = providerBuilder.build();