Migrate struct() to skylarkbuildapi
RELNOTES: None.
PiperOrigin-RevId: 197915097
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 debf9f5..13d1997 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
@@ -35,7 +35,6 @@
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.ImplicitOutputsFunction;
import com.google.devtools.build.lib.packages.Info;
-import com.google.devtools.build.lib.packages.NativeProvider;
import com.google.devtools.build.lib.packages.PredicateWithMessage;
import com.google.devtools.build.lib.packages.RequiredProviders;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -45,6 +44,7 @@
import com.google.devtools.build.lib.packages.SkylarkInfo;
import com.google.devtools.build.lib.packages.SkylarkProvider;
import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier;
+import com.google.devtools.build.lib.packages.StructProvider;
import com.google.devtools.build.lib.rules.cpp.transitions.DisableLipoTransition;
import com.google.devtools.build.lib.skyframe.SkylarkImportLookupFunction;
import com.google.devtools.build.lib.skylark.util.SkylarkTestCase;
@@ -1180,17 +1180,17 @@
}
private static Info makeStruct(String field, Object value) {
- return NativeProvider.STRUCT.create(ImmutableMap.of(field, value), "no field '%'");
+ return StructProvider.STRUCT.create(ImmutableMap.of(field, value), "no field '%'");
}
private static Info makeBigStruct(Environment env) {
// struct(a=[struct(x={1:1}), ()], b=(), c={2:2})
- return NativeProvider.STRUCT.create(
+ return StructProvider.STRUCT.create(
ImmutableMap.<String, Object>of(
"a",
MutableList.<Object>of(
env,
- NativeProvider.STRUCT.create(
+ StructProvider.STRUCT.create(
ImmutableMap.<String, Object>of(
"x", SkylarkDict.<Object, Object>of(env, 1, 1)),
"no field '%s'"),
@@ -1311,9 +1311,9 @@
"data = struct(x = 1)"
);
Info data = (Info) lookup("data");
- assertThat(NativeProvider.STRUCT.isExported()).isTrue();
- assertThat(data.getProvider()).isEqualTo(NativeProvider.STRUCT);
- assertThat(data.getProvider().getKey()).isEqualTo(NativeProvider.STRUCT.getKey());
+ assertThat(StructProvider.STRUCT.isExported()).isTrue();
+ assertThat(data.getProvider()).isEqualTo(StructProvider.STRUCT);
+ assertThat(data.getProvider().getKey()).isEqualTo(StructProvider.STRUCT.getKey());
}
@Test
@@ -1656,4 +1656,12 @@
assertThat(params.get(0)).isEqualTo("NoneType");
assertThat(params.get(1)).isEqualTo("NoneType");
}
+
+ @Test
+ public void testTypeOfStruct() throws Exception {
+ eval("p = type(struct)", "s = type(struct())");
+
+ assertThat(lookup("p")).isEqualTo("Provider");
+ assertThat(lookup("s")).isEqualTo("struct");
+ }
}