Native declared providers are automatically exported.
--
MOS_MIGRATED_REVID=134221884
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
index 453f47d..8a18f54 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiTest.java
@@ -23,7 +23,7 @@
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
-import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor.Key;
+import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor.SkylarkKey;
import java.util.List;
import javax.annotation.Nullable;
import org.junit.Test;
@@ -64,7 +64,8 @@
ConfiguredTarget configuredTarget = getConfiguredTarget("//java/test:my");
SkylarkProviders provider = configuredTarget.getProvider(SkylarkProviders.class);
SkylarkClassObject skylarkClassObject = provider
- .getDeclaredProvider(new Key(Label.parseAbsolute("//java/test:extension.bzl"), "result"));
+ .getDeclaredProvider(
+ new SkylarkKey(Label.parseAbsolute("//java/test:extension.bzl"), "result"));
assertThat(Iterables.transform((List<?>) skylarkClassObject.getValue("processor_classpath"),
new Function<Object, String>() {
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
index a140187..dc08c01 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
@@ -817,7 +817,7 @@
);
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:r");
- SkylarkClassObjectConstructor.Key key = new SkylarkClassObjectConstructor.Key(
+ SkylarkClassObjectConstructor.Key key = new SkylarkClassObjectConstructor.SkylarkKey(
Label.create(configuredTarget.getLabel().getPackageIdentifier(), "extension.bzl"),
"my_provider");
SkylarkProviders skylarkProviders = configuredTarget.getProvider(SkylarkProviders.class);
@@ -844,7 +844,7 @@
);
ConfiguredTarget configuredTarget = getConfiguredTarget("//test:r");
- SkylarkClassObjectConstructor.Key key = new SkylarkClassObjectConstructor.Key(
+ SkylarkClassObjectConstructor.Key key = new SkylarkClassObjectConstructor.SkylarkKey(
Label.create(configuredTarget.getLabel().getPackageIdentifier(), "extension.bzl"),
"my_provider");
SkylarkProviders skylarkProviders = configuredTarget.getProvider(SkylarkProviders.class);
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index 42cd32a..7a78b6e 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -981,7 +981,7 @@
assertThat(dataConstructor.isExported()).isTrue();
assertThat(dataConstructor.getPrintableName()).isEqualTo("data");
assertThat(dataConstructor.getKey()).isEqualTo(
- new SkylarkClassObjectConstructor.Key(FAKE_LABEL, "data")
+ new SkylarkClassObjectConstructor.SkylarkKey(FAKE_LABEL, "data")
);
}
@@ -1017,4 +1017,16 @@
"d = d1 + d2"
);
}
+
+ @Test
+ public void structsAsDeclaredProvidersTest() throws Exception {
+ evalAndExport(
+ "data = struct(x = 1)"
+ );
+ SkylarkClassObject data = (SkylarkClassObject) lookup("data");
+ assertThat(SkylarkClassObjectConstructor.STRUCT.isExported()).isTrue();
+ assertThat(data.getConstructor()).isEqualTo(SkylarkClassObjectConstructor.STRUCT);
+ assertThat(data.getConstructor().getKey())
+ .isEqualTo(SkylarkClassObjectConstructor.STRUCT.getKey());
+ }
}