diff options
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.java | 13 |
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(); |