aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkApiProvider.java8
2 files changed, 7 insertions, 2 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 8f6b61cbc3..95d8f8260b 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
@@ -63,6 +63,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget {
// Initialize every SkylarkApiProvider
for (int i = 0; i < providers.getProviderCount(); i++) {
+ Object providerKeyAt = providers.getProviderKeyAt(i);
Object obj = providers.getProviderInstanceAt(i);
if (obj instanceof SkylarkApiProvider) {
((SkylarkApiProvider) obj).init(this);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkApiProvider.java
index b9fbdd07e0..83cdd438a0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkApiProvider.java
@@ -30,8 +30,12 @@ public abstract class SkylarkApiProvider {
public final void init(TransitiveInfoCollection info) {
if (this.info != null) {
- // Allow multiple calls, but only consistent ones.
- Preconditions.checkState(info == this.info);
+ // todo(dslomov): nuke this weird initialization mechanism.
+
+ // Allow multiple calls.
+ // It is possible for the Skylark rule to get a SkylarkApiProvider such as `target.java`
+ // from its dependency and pass it on. It does not make a whole lot of sense, but we
+ // shouldn't crash.
return;
}
this.info = Preconditions.checkNotNull(info);