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());
+  }
 }